在现有的中添加新的成员方法后,我面临以下问题class Response implements Serializable{}
。没有声明显式的串行版本ID。多次尝试,得到相同的序列号。
Error communicating with the webserver: com.abc.xyz.app.util.common.Response;
local class incompatible: stream classdesc serialversionUID =
-3900355805473150430, local class serialversionUID =
-6706527232726476603
在查看了一些文档之后,我尝试class Response
用其他内容修改:private final static long serialVersionUID = 1L;
。
进行此更改后,错误如下:
Error communicating with the webserver: com.abc.xyz.app.util.common.Response;
local class incompatible: stream classdesc serialversionUID =
-3900355805473150430, local class serialversionUID = 1
这些是位于webapps
tomcat文件夹中并xyz.jnlp
在客户端计算机上加载的类。新鲜的客户端计算机xyz.jnlp
从远程Web服务器加载。但是事情不起作用!!!
请帮助我理解这个问题。
序列化对象时,将类的序列号UID写入流中。如果该类没有一个,则使用确定性算法自动生成。
在反序列化给定类的对象时,将本地类(硬编码或生成)的串行版本UID与流中的序列化UID进行比较。如果它们不匹配,则会出现异常:这意味着这些类不兼容。
因此,要解决您的问题,您有两种选择:
除非您完全理解更改的含义(这很困难并且需要阅读序列化规范),否则我的建议是选择选项1:使客户机和服务器保持最新。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句