I have a @SessionScoped @Named
bean with a @Producer
method for a user object:
@Named @SessionScoped
public class UserBean implements Serializable
{
//...
@Named @Produces @LoggedIn @SessionScoped
public MyUser getCurrentUser() {return user;}
}
This works fine in my setup (JBoss-7.1.1-Final) and it's no problem to access the user fields from JSF pages with #{currentUser.name}
. The qualifier is org.jboss.seam.security.annotations.LoggedIn
. Now I want to @Inject
this user in a field in another @Named
Bean:
@Named
public class FavBean implements Serializable
{
private @Inject @LoggedIn MyUser currentUser;
}
This gives me the 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()]]]
I don't understand the first dependency Managed Bean [class test.ejb.MyUser]
This class is a simple @Entity
and deployed in an ebb.jar in a EAR. As a workaround I'm currently injecting the UserBean
get the user from there.
LoggedIn
annotation by addingQualifier
to it. It seems it doesn't haveQualifier
. – Demography