2016-05-16 72 views
2

我已将我的java版本从1.6更新到1.8。当我尝试在weblogic(12c)中部署我的项目时,出现错误。不同的java版本会创建不同的serialVersionUID吗?

java.io.InvalidClassException:org.springframework.beans.PropertyAccessException;局部类不兼容:流classdesc的serialVersionUID = -5171479712008793097,本地类的serialVersionUID = 736080306599024264

我需要重新生成的serialVersionUID,这创造使用Java版本1.6?

请帮

感谢,

拉吉

回答

1

是,编译器的版本问题。该Serializable的Javadoc说(部分)

如果一个序列化类没有显式声明的serialVersionUID,则序列化运行时将计算该类的默认serialVersionUID的值基于类的各个方面,如所描述的Java(TM)对象序列化规范。但是,强烈建议使用所有可序列化的类都显式声明serialVersionUID值,因为默认的serialVersionUID计算对类详细信息高度敏感,这可能因编译器实现而异,因此在反序列化期间可能会导致意想不到的InvalidClassExceptions