Неоднозначные зависимости CDI

У меня есть bean-компонент @SessionScoped @Namedс методом @Producerдля пользовательского объекта:

@Named @SessionScoped
public class UserBean implements Serializable
{
  //...
  @Named @Produces @LoggedIn @SessionScoped
  public MyUser getCurrentUser() {return user;}
}

Это отлично работает в моей настройке (JBoss-7.1.1-Final)и нет проблем с доступом к пользовательским полям со страниц JSF с помощью #{currentUser.name}. Квалификатор org.jboss.seam.security.annotations.LoggedIn. Теперь я хочу @Injectэтого пользователя в поле в другом @NamedБине:

@Named
public class FavBean implements Serializable
{   
  private @Inject @LoggedIn MyUser currentUser;
}

Это дает мне ошибку:

org.jboss.weld.exceptions.DeploymentException:
WELD-001409 Ambiguous dependencies for type [MyUser] with qualifiers [@Default] at
  injection point [[field] @Inject @LoggedIn test.FavBean.currentUser].
Possible dependencies [[Managed Bean [class test.ejb.MyUser] with qualifiers
  [@Any @Default],
Producer Method [MyUser] with qualifiers [@Any @Default] declared as [[method]
  @Named @Produces @LoggedIn @SessionScoped public test.UserBean.getCurrentUser()]]]

Я не понимаю первую зависимость Managed Bean [class test.ejb.MyUser]Этот класс простой @Entityи развернутый в отливе в УХО. В качестве обходного пути я в настоящее время ввожу UserBeanпользователя оттуда.

13
задан Thor 17 April 2012 в 06:04
поделиться