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")

È stato utile?

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
scroll top