Puis-je (et comment) rechercher les beans gérés par CDI en utilisant javax.naming.Contexte # dans le module EJB?
Je peux (et si oui, comment?) recherche CDI géré à l'aide de fèves de javax.naming.Context#lookup
dans le module EJB?
Je suis l'aide de GlassFish v3. Je suppose que je peux utiliser @Named
mais qu'est-ce que le nom JNDI de CDI managed bean? Je veux de recherche de non géré Pojo donc je ne peux pas utiliser @Inject
.
source d'informationauteur zacheusz
Vous devez vous connecter pour publier un commentaire.
Vous pouvez rechercher la
BeanManager
via JNDI (java:comp/BeanManager
) puis utiliser la JSR-299 API pendait hors de laBeanManager
pour obtenir une référence contextuelle à un managed bean.JSR-299 géré les haricots ne sont pas disponibles pour une recherche JNDI directe.
Vous pouvez également accéder à la BeanManager en utilisant CDI.current(), qui permet d'éviter de taper quelques lignes de code. Exemple pris sur ici
À l'aide de CDI.current()
Utilisant JNDI:
Maintenant, vous avez la BeanManager vous pouvez accéder à votre CDI haricots en faisant soit un type de base de recherche ou un nom de base de recherche.
Type de base:
Nom
Exemple complet:
Mise à JOUR - Ce qui peut aujourd'hui être réalisée en une seule ligne si vous utilisez CDI 1.1: