Dependências ambíguas do CDI
eu tenho um@SessionScoped @Named
feijão com um@Producer
método para um objeto de usuário:
<code>@Named @SessionScoped public class UserBean implements Serializable { //... @Named @Produces @LoggedIn @SessionScoped public MyUser getCurrentUser() {return user;} } </code>
Isso funciona bem na minha configuração (JBoss-7.1.1-Final) e não há problema em acessar os campos de usuário das páginas JSF com#{currentUser.name}
. O qualificador éorg.jboss.seam.security.annotations.LoggedIn
. Agora eu quero@Inject
este usuário em um campo em outro@Named
Feijão:
<code>@Named public class FavBean implements Serializable { private @Inject @LoggedIn MyUser currentUser; } </code>
Isso me dá o erro:
<code>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()]]] </code>
Eu não entendo a primeira dependênciaManaged Bean [class test.ejb.MyUser]
Esta aula é simples@Entity
e implementado em um ebb.jar em um EAR. Como solução alternativa, estou atualmente injetandoUserBean
obter o usuário de lá.