【问题标题】:java.rmi.MarshalExceptionjava.rmi.MarshalException
【发布时间】:2009-10-16 14:35:56
【问题描述】:

每当我尝试从客户端调用我的 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)

为什么会这样?以及如何解决?

【问题讨论】:

    标签: java jakarta-ee ejb marshalling rmi


    【解决方案1】:

    本地类和远程类是不同的版本。在解组过程中,接收方不支持发送方的协议版本。确保服务器上的编译类与客户端上的编译类版本相同,因此可以毫无问题地进行序列化/反序列化。 我建议您从零开始重建所有项目并重新部署它们,然后重新生成存根。

    【讨论】:

      【解决方案2】:

      看起来您的服务器与您的客户端具有不同版本的对象。确保它们都对 com.afrikbrain.util.message.MessageInfo 对象使用相同的代码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-08-04
        • 1970-01-01
        相关资源
        最近更新 更多