views:

164

answers:

2

whenever I try to call my ejb from a client, I get this error :

  java.rmi.MarshalException: Failed to communicate. 

    Problem during     marshalling/unmarshalling; nested exception is: 

    java.io.InvalidClassException: com.afrikbrain.util.message.MessageInfo;

    local     class incompatible:

   stream classdesc serialVersionUID = 2285009932770474121, 

   local class     serialVersionUID = -2900394430145132451 at      

  org.jboss.remoting.transport.socket.SocketClientInvoker.handleException(SocketClientInvoker
.java:122)

why is it occuring ? and how to solve it ?

+1  A: 

The local class and the remote class are differente versions. During the unmarshalling process the receiver does not support the protocol version of the sender. Make sure the compiled class on the server is the same version of the compiled class on the client, so can be serialized/deserialized without problems. I suggest you rebuilding from zero all the project and redeploying them, and regenerate the stubs.

JuanZe
+1  A: 

Looks like your server has a different version of the object that your client. Make sure they are both using the same code for the com.afrikbrain.util.message.MessageInfo object.

tster