Question

Je suis en train d'utiliser JNDI pour obtenir une nouvelle session stateful Bean dans un servlet (comme une variable locale). Ma méthode de doGet() a ce qui suit:

Bean bean = (Bean) new InitialContext().lookup("beanName");

Je l'ai essayé, y compris java:comp/env mais toutes mes tentatives ont conduit à nommer des exceptions.

Je tente de lier le grain dans l'annotation @Stateful, en utilisant différentes hypothèses comme @Stateful(name="beanName") et @Stateful(mappedName="beanName")

Était-ce utile?

La solution

Ce que je avais besoin était d'utiliser l'annotation @EJB sur le servlet au niveau de la classe, comme suit:

@EJB(name="beanName", beanInterface = Bean.class)

Ensuite, la recherche dans la méthode de service peut se produire en utilisant le nom lié par l'annotation @EJB:

Bean beanInstance = (Bean) new InitialContext().lookup("java:comp/env/beanName");

Il n'y a pas besoin de quoi que ce soit dans la classe Bean lui-même, autre que l'annotation @Stateful ordinaire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top