Wie JNDI verwenden, um eine neue Stateful Session Bean, in EJB3 zu erhalten?
-
27-09-2019 - |
Frage
Ich versuche JNDI zu verwenden, um eine neue Stateful Session Bean in einem Servlet (als lokale Variable) zu erhalten. Meine doGet()
Methode hat die folgende:
Bean bean = (Bean) new InitialContext().lookup("beanName");
Ich habe versucht, java:comp/env
einschließlich, aber alle meine Versuche haben dazu geführt, Ausnahmen zu nennen.
Ich versuche, die Bohne in der @Stateful
Anmerkung zu binden, verschiedene Vermutungen wie @Stateful(name="beanName")
und @Stateful(mappedName="beanName")
mit
Lösung
Was ich brauchte, war die @EJB
Anmerkung auf dem Servlet auf Klassenebene zu verwenden, wie folgt:
@EJB(name="beanName", beanInterface = Bean.class)
Nachschlagen dann in der Service-Methode kann durch die @EJB
Anmerkung gebunden mit dem Namen geschehen:
Bean beanInstance = (Bean) new InitialContext().lookup("java:comp/env/beanName");
Es gibt keine Notwendigkeit für irgendetwas in der Bean-Klasse selbst, andere als die Ebene @Stateful
Anmerkung.