Cómo utilizar JNDI para obtener una nueva sesión con estado Bean, en EJB3?
-
27-09-2019 - |
Pregunta
Estoy tratando de utilizar JNDI para obtener un nuevo bean de sesión con estado en un servlet (como una variable local). Mi método doGet()
tiene la siguiente:
Bean bean = (Bean) new InitialContext().lookup("beanName");
He intentado incluyendo java:comp/env
pero todos mis intentos han conducido a nombrar excepciones.
Estoy tratando de obligar a la de frijol en la anotación @Stateful
, utilizando diversas conjeturas como @Stateful(name="beanName")
y @Stateful(mappedName="beanName")
Solución
Lo que necesitaba era utilizar la anotación @EJB
en el servlet a nivel de clase, de la siguiente manera:
@EJB(name="beanName", beanInterface = Bean.class)
A continuación, las operaciones de búsqueda en el método de servicio que puede suceder con el nombre obligado por la anotación @EJB
:
Bean beanInstance = (Bean) new InitialContext().lookup("java:comp/env/beanName");
No hay necesidad de nada en la propia clase Bean, que no sea la anotación @Stateful
sin formato.