EJB + WebLogic + Stand Alone Application  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
free1anr
What is classpath?

Membro desde: 27/01/2010 08:23:22
Mensagens: 8
Offline

estou desenvolvedo um exemplo de chamada do EJB por uma aplicação Stand alone, mas esta dando uma exceção.
Estou utilizando o WebLogic 11gR1


A classe que faz o lookup




O mapeamento no projeto EJB:



Interface




ele retorna a seguinte exceção :

Exception in thread "main" java.lang.ClassCastException: $Proxy0 cannot be cast to br.com.teste.HelloBean
at br.com.tutorial.EjbCliente.connect(EjbCliente.java:37)
at br.com.tutorial.EjbCliente.main(EjbCliente.java:16)


No overview do JNDI tree fica

This page displays details about this bound object.
Binding Name:
HelloBean#br.com.teste.HelloBeanRemote

Class:
$Proxy109

Hash Code:
14629952

toString Results:
ClusterableRemoteRef(-1985301664966677648S::base_domain:AdminServer [-1985301664966677648S::base_domain:AdminServer/346])/346


Alguem sabe pq dessa exceção?

felipeguerra
GUJ Ranger

Membro desde: 26/03/2007 16:36:54
Mensagens: 987
Localização: São Paulo
Offline

Troca sua interface por essa:



HelloBeanRemote helloBean = (HelloBeanRemote) ctx.lookup (HelloBeanRemote.JNDI_NAME);

trabalhe com interface e não implementação.

This message was edited 2 times. Last update was at 16/01/2012 12:42:57


"Antes da iluminação cortar lenha, carregar água. Depois da iluminação cortar lenha, carregar água..."
free1anr
What is classpath?

Membro desde: 27/01/2010 08:23:22
Mensagens: 8
Offline

troquei, mesmo assim deu a mesma exceção o.o qual o motivo de colocar essa variavel final na interface?

quando eu olho no console do weblogic as outras classes todas mostram o nome certo la no class Name do overview mas o meu remote bean fica $Proxy. .. isso é correto ?
free1anr
What is classpath?

Membro desde: 27/01/2010 08:23:22
Mensagens: 8
Offline

Eu não tinha visto a ultima parte da resposta ... agora deu certo...
mas apenas corrigindo o que vc tinha falado a itnerface tem que ser




static final String JNDI_NAME = "$NomeJNDI#pacote.HelloBeanRemote";

$NomeJNDI = mappedName = "HelloBean" ...

obrigado RESOLVIDO

This message was edited 1 time. Last update was at 16/01/2012 12:55:41

 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team