我有三个项目。第一个是 RMI 客户端,第二个是 RMI 服务器。我还有第三个项目,我有一些共同的课程。我从第三个项目制作了库并添加到其他项目(客户端和服务器)中。当我想将库(第三个项目)中的某个类 A 作为远程类的参数传递时,我遇到了问题。我的问题是我得到关于 serialVersionUID 的异常......问题出在哪里?我认为问题在于在客户端和服务器之间传递这个 A 类。
请帮忙
我有三个项目。第一个是 RMI 客户端,第二个是 RMI 服务器。我还有第三个项目,我有一些共同的课程。我从第三个项目制作了库并添加到其他项目(客户端和服务器)中。当我想将库(第三个项目)中的某个类 A 作为远程类的参数传递时,我遇到了问题。我的问题是我得到关于 serialVersionUID 的异常......问题出在哪里?我认为问题在于在客户端和服务器之间传递这个 A 类。
请帮忙
您是否在您的课程中设置了serialVersionUID ?
如果不是,序列化程序可能会认为您正在尝试反序列化同一类的不兼容版本。这是因为将生成 serialVersionUID,并且可能在不同平台上有所不同。
请参阅此 Fíndbugs 模式,了解为什么要定义一个: http: //findbugs.sourceforge.net/bugDescriptions.html#SE_NO_SERIALVERSIONID
似乎您在第一个和第二个项目中为一个类使用了不同的实现。既然你说类 A 在共享库中,现在你应该检查该类中使用的字段,并确保与它们相关的所有类都是共享的(如果你从它们的子类传递实例,你应该检查这些子类也是)。