Erro EJB Client

Salve galera, blz?
Bom aqui estou eu apanhando do EJB… :lol:

Comecei a estudar EJB e achei uns tutoriais muito bons. Por sinal, eis aí os links:

Introdução a Message-Driven Beans
Implementação de Stateful Session Beans
Implementação de Stateless Session Beans

Bom minha saga foi o seguinte, fiz o exemplo do StateLess Session Bean, e funcionou que nem um relógio.Daí fiquei animado e fiz meu próprio brinquedinho…Funfou também.

Daí fiquei uns dias sem mexer lá vou eu desenvolver mais outra coisa em EJB, mas o problema é que não funfou mais.Depois de apanhar um pouco, resolvi olhar novamente no tutorial e fazer o seu exemplo, mas o problema é que também deu o mesmo erro.

Tipo assim, criei o Home, EJBObject e o StateLess e fiz o deploy(sem problemas), daí quando fui fazer a chamada do cliente, eis que ele me lança a seguinte exception:

Exception in thread "main" javax.naming.CommunicationException Root exception is java.lang.ClassNotFoundException: br.com.j2eebrasil.artigos.ejb.SaqueHome (nosecurity manager: RMI class loader disabled)] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:653) at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:508) at javax.naming.InitialContext.lookup(InitialContext.java:351) at Client.main(Client.java:13) Caused by: java.lang.ClassNotFoundException: br.com.j2eebrasil.artigos.ejb.Saque Home (no security manager: RMI class loader disabled) at sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler.java:531) at java.rmi.server.RMIClassLoader$2.loadProxyClass(RMIClassLoader.java:6 28) at java.rmi.server.RMIClassLoader.loadProxyClass(RMIClassLoader.java:294 ) at sun.rmi.server.MarshalInputStream.resolveProxyClass(MarshalInputStrea m.java:238) at java.io.ObjectInputStream.readProxyDesc(ObjectInputStream.java:1494) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1457) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1 693) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339) at java.rmi.MarshalledObject.get(MarshalledObject.java:135) at org.jnp.interfaces.MarshalledValuePair.get(MarshalledValuePair.java:4 8) at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:551) ... 3 more

Agora me digam, onde estou “levando uma taca”?

Seu cliente roda no JBoss ou numa JVM separada?

Se for separada, certifique-se que não falta a classe br.com.j2eebrasil.artigos.ejb.SaqueHome.

Bom, no JBoss é a mesma coisa.

Meu Client está rodando em JVM separada…

Estava até vendo esta thread, mas coloquei uma porrada de jars(todos do JBoss client) e não adiantou.

E o pior que não falta a classe…

E aí? :roll:

A Paz!!

Tem um tal de jbossall-client.jar que é o que você precisa.
Certifique-se de pôr os JARs da sua app também no CLASSPATH.

Pior que tem… :cry:

Não seria o seguinte, por exemplo no meu componente eu coloquei as classes Home e EJBObject em um pacote e na cliente(separado) coloquei em outro.Teria a ver?

A Paz!!

Vou simplificar a coisa:

No JBoss:

seu EAR |--- classes EJB |--- interfaces EJB |--- outras classes

No cliente:

JAR |--- suas classes cliente |--- interfaces Home e Remote JAR jbossall-client.jar

Ôpa fiz aquilo que falei em outro e mudou o erro:

Exception in thread "main" java.lang.IllegalStateException: Failed to find method for hash:-6993301247273825440 available mappings: {4121927297169232143=public abstract void javax.ejb.EJBHome.remove(javax.ejb.Handle) throws java.rmi.RemoteE xception,javax.ejb.RemoveException, -7423251857241384719=public abstract void ja vax.ejb.EJBHome.remove(java.lang.Object) throws java.rmi.RemoteException,javax.e jb.RemoveException, 7415355246179212884=public abstract boolean javax.ejb.EJBObj ect.isIdentical(javax.ejb.EJBObject) throws java.rmi.RemoteException, 1588202679 097188875=public abstract br.com.Cliente br.com.ejb.Clientes.getCliente() throws java.rmi.RemoteException, 8981122088959051067=public abstract javax.ejb.HomeHan dle javax.ejb.EJBHome.getHomeHandle() throws java.rmi.RemoteException, -12258649 25247205563=public abstract void javax.ejb.EJBObject.remove() throws java.rmi.Re moteException,javax.ejb.RemoveException, -759407284375168265=public abstract br. com.ejb.Clientes br.com.ejb.ClientesHome.create() throws javax.ejb.CreateExcepti on,java.rmi.RemoteException, -883843542736932254=public abstract java.lang.Objec t javax.ejb.EJBObject.getPrimaryKey() throws java.rmi.RemoteException, 451209517 1315154818=public abstract javax.ejb.EJBHome javax.ejb.EJBObject.getEJBHome() th rows java.rmi.RemoteException, 3781219857755091396=public abstract javax.ejb.EJB MetaData javax.ejb.EJBHome.getEJBMetaData() throws java.rmi.RemoteException, -32 60590760910195779=public abstract javax.ejb.Handle javax.ejb.EJBObject.getHandle () throws java.rmi.RemoteException, 8594593460157411074=public abstract javax.ej b.EJBObject javax.ejb.Handle.getEJBObject() throws java.rmi.RemoteException} at org.jboss.invocation.MarshalledInvocation.getMethod(MarshalledInvocat ion.java:297) at org.jboss.ejb.Container.invoke(Container.java:852) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatch er.java:141) at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80) at org.jboss.mx.server.Invocation.invoke(Invocation.java:72) at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker. java:242) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:642) at org.jboss.invocation.jrmp.server.JRMPInvoker$MBeanServerAction.invoke (JRMPInvoker.java:775) at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java: 382) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source) at sun.rmi.transport.Transport$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Unknown Source) at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Sour ce) at java.lang.Thread.run(Unknown Source) at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Stream RemoteCall.java:247) at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java: 223) at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:126) at org.jboss.invocation.jrmp.server.JRMPInvoker_Stub.invoke(Unknown Sour ce) at org.jboss.invocation.jrmp.interfaces.JRMPInvokerProxy.invoke(JRMPInvo kerProxy.java:118) at org.jboss.invocation.MarshallingInvokerInterceptor.invoke(Marshalling InvokerInterceptor.java:73) at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor. java:46) at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:5 5) at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessi onInterceptor.java:97) at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:86) at $Proxy1.getCliente(Unknown Source) at Client.main(Client.java:23)

Me parece que ele não está conseguinte decerializar, não?

Pq no getCliente eu faço um solicitação de um objeto Cliente que implements Serializable.E agora?

A Paz!!

Tenta usar o plugin JBoss-IDE do Eclipse. Simplifica sua vida.

Ou, coloquei tudo nun diretório só(tanto client(em um) quanto server(em outro)) e funfou…
:lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol:

É classpath, canseira…

Mas valeu cara!!

A Paz!!