[RESOLVIDO] Comunicação entre lógica de negócio EJB 3 + cliente web (jsp+servlet)
4 respostas
L
Lucas010
Olá, estou aprendendo EJB através do livro EJB 3 in action, porém, no capitulo 2, ele apresenta um “hello world” local, e ai surgiram algumas dúvidas…
Como que eu faço para rodar por exemplo, em um projeto, somente a lógica em EJB (tipo um método sayHello) e em outro projeto, um cliente web que chamaria esse método através de DI (devo copiar a interface do Bean para o projeto do cliente?)?
Posso colocar esses dois projetos em servidores diferentes, um no Japão e outro no Brasil (ex) ? se sim, então como isso é possível?
Quanto á primeira pergunta, basta vc adicionar o projeto EJB ao classpath da sua aplicação Web, e na sua servlet vc chamaria o seu EJB através de sua interface Local, assim:
@EJB
NomeDoMeuEJBLocal;
Quanto a segunda pergunta, é possível sim, nesse caso vc usaria a interface Remota. Procure artigos sobre Lookup JNDI de EJB.
L
Lucas010
hugo.hlcxcx:
Quanto á primeira pergunta, basta vc adicionar o projeto EJB ao classpath da sua aplicação Web, e na sua servlet vc chamaria o seu EJB através de sua interface Local, assim:
@EJB
NomeDoMeuEJBLocal;
Quanto a segunda pergunta, é possível sim, nesse caso vc usaria a interface Remota. Procure artigos sobre Lookup JNDI de EJB.
Certo, mas eu tenho que adicionar o projeto EJB todo ao classpath? ou somente a interface do bean? e se eu for colocar os projetos em servidores separados, ainda tenho que adiconar no classpath? :?
agora mesmo vou pesquisar sobre o que vc me recomendou, Lookup JNDI de EJB . Eu ja tinha lido um pouco sobre o assunto no livro, até onde eu sei, a anotação de DI @EJB faz isso por trás dos panos quando o container não consegue encontrar o bean localmente (me corrija se eu estiver errado).