que tienen un grano @SessionScoped @Named
con un método @Producer
para un objeto de usuario:CDI dependencias ambiguas
@Named @SessionScoped
public class UserBean implements Serializable
{
//...
@Named @Produces @LoggedIn @SessionScoped
public MyUser getCurrentUser() {return user;}
}
Esto funciona bien en mi configuración (JBoss-7.1.1-final) y no hay problema para acceder el usuario campos de páginas JSF con #{currentUser.name}
. El calificador es org.jboss.seam.security.annotations.LoggedIn
. Ahora quiero @Inject
este usuario en un campo de otra @Named
Bean:
@Named
public class FavBean implements Serializable
{
private @Inject @LoggedIn MyUser currentUser;
}
Esto me da el error:
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()]]]
No entiendo la primera dependencia Managed Bean [class test.ejb.MyUser]
Esta clase es un simple @Entity
y desplegado en ebb.jar en un EAR. Como solución alternativa, actualmente estoy inyectando el UserBean
y obtengo el usuario desde allí.
O modifique la anotación 'LoggedIn' agregando' Calificador' a ella. Parece que no tiene 'Calificador'. –