Executando EJBs remotos, localmente, no JBoss 4

Bysutradi

Executando EJBs remotos, localmente, no JBoss 4

Queria compartilhar um problema que tivemos num determinado cenário onde a solução encontramos em fóruns americanos depois de algumas horas de pesquisa.

Cenário

JBoss 4.x usando Spring 2.x para gerar os EJBs em ambiente do Desenvolvedor, junto com a aplicação web.

Comportamento

Sempre na tentativa de acesso ao serviço que invocava o EJB, a exceção abaixo era lançada.

10:09:57,614 ERROR [LogInterceptor] EJBException in method: public abstract com.meupacote.MeuEJBServiceRemote com.meupacote.MeuEJBServiceRemoteHome.create() throws javax.ejb.CreateException,java.rmi.RemoteException:
javax.ejb.EJBException: Invalid invocation, check your deployment packaging, method=public abstract com.meupacote.MeuEJBServiceRemote com.meupacote.MeuEJBServiceRemoteHome.create() throws javax.ejb.CreateException,java.rmi.RemoteException
at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invokeHome(StatelessSessionContainer.java:175)

Solução

Alterar as propriedades abaixo

1.No arquivo %jboss%/server/default/conf/jboss-service.xml, procurar pela referência abaixo

<mbean code="org.jboss.naming.NamingService" name="jboss:service=Naming" xmbean-dd="resource:xmdesc/NamingService-xmbean.xml">

Definir CallByValue igual a true

2.No arquivo %jboss%/server/default/deploy/ear-deployer.xml

Definir Isloated, CallByValue igual a true

3.No arquivo %jboss%/server/default/deployjboss-web.deployerMETA-INFjboss-service.xml

Definir Java2ClassLoadingCompilance and UseJbossWebLoader igual a false

About the Author

sutradi administrator

Leave a Reply