Container EJB 3 Separado do Container Web

9 respostas
M

Por favor,

Tenho um Container de EJb3( JBoss) e outro Container Web rodando em máquinas distintas em uma rede. Tenho um projeto EJB rodando no Container de Ejb e quero chamar esses ejbs do projeto Web que está em outro Container. Alguém sabe como fazer isso?

9 Respostas

M

é só fazer o lookup no servidor que estao os ejbs.

Seria algo mais ou menos assim:

Hashtable ht=new Hashtable();
ht.put(InitialContext.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
ht.put(InitialContext.PROVIDER_URL,"jnp://seu_endereco_do_jboss:1099");
ht.put(InitialContext.URL_PKG_PREFIXES,"org.jboss.naming:org.jnp.interfaces");

InitialContext ic=new InitialContext(ht);
ic.lookup("meu_ejb_jndi_interface_remote");

Claro, use os patterns apropriados

M

Perfeito Marcelo,

mas tem um porém, como vou utilizar os métodos do EJb sendo que não tem como Fazer um CAst para seu Tipo Apropriado, porque dessa maneira ele é apenas do tipo Object, que é o tipo que o método lookup retorna.

felipe_gdr

Tenta usar esse metodo:

Aonde obj eh o Objeto saido do metodo lookup().

jgbt

mTALEONE:
Perfeito Marcelo,

mas tem um porém, como vou utilizar os métodos do EJb sendo que não tem como Fazer um CAst para seu Tipo Apropriado, porque dessa maneira ele é apenas do tipo Object, que é o tipo que o método lookup retorna.

seu cliente tem que “conhecer” pelo menos sua interface remota.

[]´s

jgbt

felipe_gdr:
Tenta usar esse metodo:

Aonde obj eh o Objeto saido do metodo lookup().

se estiver usando EJB3, não é mais necessario o narrow, vc pode fazer direto o cast no metodo lookup.

[]´s

M

Então é o seguinte, se eu tenho um projeto Client (Web)sendo desenvolvido que irá utilizar o EJB em outro server (Interface Remote), este novo projeto tem que pelo menos conhecer a Interface do EJB ou seja o que possibilita fazer o Cast para o tipo apropriado, portanto alguma referência dos meus EJBs tem que estar no Classpath do projeto WEb para que assim eu importo eles e faça o Cast, estou certo? Se não estiver por favor me passem um exemplo utilizando o Eclipse.

Rafael_Nunes

AO menos as interfaces dos EJBs você precisa que estejam no seu projeto web para que você possa fazer o cast.

M

Valeu pessoal pela força, sou novo no fórum e fiquei bastante surpreso pelo tempo das respostas e suas didáticas.

Obrigado! Até mais.

felipe_gdr

jgbt:
felipe_gdr:
Tenta usar esse metodo:

Aonde obj eh o Objeto saido do metodo lookup().

se estiver usando EJB3, não é mais necessario o narrow, vc pode fazer direto o cast no metodo lookup.

[]´s

Perfeito, mais uma prova que a nova versao ta bem melhor. Quanto codigo pra fazer um cast hein! :smiley:
Valeu jgbt.

Criado 22 de fevereiro de 2008
Ultima resposta 23 de fev. de 2008
Respostas 9
Participantes 5