ove*_*nge 2 java jnlp serialization deserialization
在现有的新成员方法中添加新成员方法之后,我面临以下问题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
Run Code Online (Sandbox Code Playgroud)
经过一些文档后,我尝试修改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
Run Code Online (Sandbox Code Playgroud)
这些是位于webapps
tomcat文件夹中并xyz.jnlp
在客户端计算机上加载的类.xyz.jnlp
从远程网络服务器加载新客户机.但事情不起作用!
请帮我理解这个问题.
序列化对象时,类的串行版本UID将写入流.如果类没有,则使用确定性算法自动生成.
反序列化给定类的对象时,将本地类(硬编码或生成的)的串行版本UID与流中的串行版本UID进行比较.如果它们不匹配,则会出现异常:这意味着类不兼容.
因此,要解决您的问题,您有两个选择:
除非您完全理解更改的含义,这很难并且需要阅读序列化规范,否则我的建议是使用选项1:使客户端和服务器保持最新状态.
归档时间: |
|
查看次数: |
573 次 |
最近记录: |