java.rmi.MarshalException

标签 java jakarta-ee ejb marshalling rmi

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

为什么会出现这种情况?以及如何解决?

最佳答案

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

关于java.rmi.MarshalException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1578434/

相关文章:

java - Jboss中的EJB异常

java - 如何将 hibernate 验证应用于字符类型?

java - 关于框架架构的思考

java - 在 Hibernate 中多次获取父类

jakarta-ee - FacesServlet 如何根据 URL 知道要呈现哪个 facelet?

java - JBoss - 用户事务未启动

java - 使用 JXL 一次将多个数据插入到 Excel 工作表中

java - 创建具有固定存在期限的自定义范围

Spring 与 EJB - 应用程序之间的分布(远程处理)

java - EJB/JPA : How to use EntityManager. persist() 始终插入新记录,而不是更新