Enfin je suis venu pour savoir pourquoi je reçois cette exception
Je l'ai utilisé l'annotation @EJB pour injecter un haricot Stateless dans un autre bean sans état Nom UserBean avec le code suivant
@Stateless(name="UserBean")
@EJB(name="app/SecurityService",
beanInterface=SecurityServiceLocal.class)
public class UserBean implements UserRemote{
}
Si vous cochez la détails de l'injection J'injectait SecurityServiceLocal, qui a été implémenté par deux classes de bean Stateless: SercurityServiceBean et SecurityServiceEnhaBean. Ainsi, le conteneur est dans l'état d'ambiguïté pour décider dans quel bean injecter car les deux implémentent la même interface.
Ceci peut être résolu en spécifiant d'autres informations telles que beanName valeur de propriété dans l'annotation @EJB. Là, vous devez indiquer quelle classe de bean sans état doit être injectée en utilisant le nom du bean (déclaré à ce niveau de bean (ou) dans le fichier ejb-jar.xml). vérifier le code pour identifier le changement dans la cartographie d'injection
@Stateless(name="UserBean")
@EJB(name="app/SecurityService",
beanInterface=SecurityServiceLocal.class,
beanName="SecurityServiceEnha")
public class UserBean implements UserRemote{
}
Premier Bean: @Stateless (name = "SecurityService", mappedName = "SecurityService") public class SecurityServiceBean implémente SecurityServiceLocal { } Second Bean: @Stateless (name = "SecurityServiceEnha", mappedName = "SecurityServiceEnha") public class SecurityServiceEnhaBean implémente SecurityServiceLocal { } – Pokuri
Merci KeithL pour vos conseils – Pokuri