Como usar o JNDI para obter um novo feijão de sessão com estado, no EJB3?
-
27-09-2019 - |
Pergunta
Estou tentando usar o JNDI para obter um novo feijão de sessão com estado em um servlet (como uma variável local). Meu doGet()
o método tem o seguinte:
Bean bean = (Bean) new InitialContext().lookup("beanName");
Eu tentei incluir java:comp/env
Mas todas as minhas tentativas levaram a nomear exceções.
Estou tentando ligar o feijão no @Stateful
anotação, usando várias suposições como @Stateful(name="beanName")
e @Stateful(mappedName="beanName")
Solução
O que eu precisava era usar o @EJB
Anotação no servlet no nível da aula, como segue:
@EJB(name="beanName", beanInterface = Bean.class)
Em seguida, a pesquisa no método de serviço pode acontecer usando o nome ligado pelo @EJB
anotação:
Bean beanInstance = (Bean) new InitialContext().lookup("java:comp/env/beanName");
Não há necessidade de nada na própria classe de feijão, além da planície @Stateful
anotação.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow