CDI Niejednoznaczne zależności
mam@SessionScoped @Named
fasola z@Producer
metoda dla obiektu użytkownika:
<code>@Named @SessionScoped public class UserBean implements Serializable { //... @Named @Produces @LoggedIn @SessionScoped public MyUser getCurrentUser() {return user;} } </code>
Działa to dobrze w mojej konfiguracji (JBoss-7.1.1-Final) i nie ma problemu z dostępem do pól użytkownika ze stron JSF za pomocą#{currentUser.name}
. Kwalifikator toorg.jboss.seam.security.annotations.LoggedIn
. Teraz chcę@Inject
ten użytkownik w polu w innym@Named
Fasola:
<code>@Named public class FavBean implements Serializable { private @Inject @LoggedIn MyUser currentUser; } </code>
Daje mi to błąd:
<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>
Nie rozumiem pierwszej zależnościManaged Bean [class test.ejb.MyUser]
Ta klasa jest prosta@Entity
i wdrożone w pliku ebb.jar w pliku EAR. Jako obejście wprowadzam obecnieUserBean
stwórz użytkownika.