Come utilizzare JNDI per ottenere un nuovo Stateful Session Bean, in EJB3?
-
27-09-2019 - |
Domanda
Sto cercando di utilizzare JNDI per ottenere un nuovo Stateful Session Bean in un servlet (come una variabile locale). Il mio metodo doGet()
ha il seguente:
Bean bean = (Bean) new InitialContext().lookup("beanName");
Ho provato compreso java:comp/env
ma tutti i miei tentativi hanno portato a denominazione eccezioni.
Sto cercando di legare il fagiolo nella annotazioni @Stateful
, utilizzando varie ipotesi come @Stateful(name="beanName")
e @Stateful(mappedName="beanName")
Soluzione
Quello che mi serviva era di usare l'annotazione @EJB
sul servlet a livello di classe, come segue:
@EJB(name="beanName", beanInterface = Bean.class)
Poi ricerca nel metodo di servizio può avvenire utilizzando il nome vincolato l'annotazione @EJB
:
Bean beanInstance = (Bean) new InitialContext().lookup("java:comp/env/beanName");
Non c'è bisogno di nulla nella classe Bean in sé, oltre l'annotazione @Stateful
pianura.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow