2016-05-16 41 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