java.rmi.MarshalException(java.rmi.MarshalExceptio

2019-08-19 06:06发布

每当我尝试调用从客户端我的EJB,我得到这个错误:

  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)

为什么会出现? 如何解决呢?

Answer 1:

本地类和远程类是differente版本。 在解组过程的接收器不支持发送方的协议版本。 确保在服务器上编译的类是在客户机上编译的类的同一版本,所以可以被串行化/没有问题反序列化。 我建议你从零所有的项目重建和重新部署他们,并重新生成存根。



Answer 2:

看起来像你的服务器有不同版本的对象,您的客户。 确保他们使用的是相同的代码为两个com.afrikbrain.util.message.MessageInfo对象。



文章来源: java.rmi.MarshalException