Erro de lookup em EJB3

4 respostas
J

Olá Pessoal,

Não estou entendo um lookup aqui! Isso está me deixando doido, quem puder me ajudar… Vamos lá.

Tenho um ServiceLocator que faz o lookup dos meus EJBs (que estão dentro da mesma aplicação) normalmente. Funciona legal. Esta minha aplicação distribui em um ear.

Agora, criei um outro projeto, somente um EJB mesmo, separado, em um outro jar. Agora que começa meu problema…

Quando eu tento fazer o lookup deste outro EJB, no ServiceLocator da outra aplicação, ele me retorna o proxy e não o EJB! (Pelo menos é isso que eu entendi)

Se eu imprimir o objeto retornado pelo lookup olha o que ele imprime:

jboss.j2ee:jar=poolTeste-ejb.jar,name=PoolTesteBean,service=EJB3

Ai quando eu tento fazer o cast para a interface do EJB ocorre algo como: java.lang.ClassCastException: $Proxy671

Eu sei o que significa uma exceção do tipo ClassCastException, meu problema é fazer o retorno do lookup ser um PoolTesteBean e não aquele objeto proxy estranho.

Desculpe se estou fazendo algo muito errado do EJB, mas eu não sei mesmo o problema.

Qualquer ajuda é bem vinda.

Obrigado.

4 Respostas

rodrigo_gomes

Ola,

No seu ear, vc tem uma aplicação web? Se sim, seu client jar está dentro de WEB-INF/lib? Se estiver, tente remove-lo de lah e colocar em outro lugar (dentro do ear)

rafachies

Está fazendo LookupLocal ou Remote ?!?!

J

Rodrigo,

Era o problema que você disse. O meu ear é de uma aplicação web e o meu jar de client estava dentro do WEB-INF/lib. Quando eu o coloquei dentro do ear funcionou.

Só não entendi bem o porque. Se você puder me explicar um pouco da teoria… :slight_smile:

Muito obridado!

Abraços.

T

porque eu faria um lookup local???

Criado 29 de abril de 2008
Ultima resposta 30 de abr. de 2008
Respostas 4
Participantes 4