解决 local class incompatible: stream classdesc serialVersionUID = 2428604987870248439, local class serialVersionUID = 3367237086303736268 异常
异常信息
java.io.InvalidClassException: com.shiro.realm.MyByteSource; local class incompatible: stream classdesc serialVersionUID = 2428604987870248439, local class serialVersionUID = 3367237086303736268
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:616)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1630)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1521)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1781)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1353)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2018)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1942)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1808)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1353)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:373)
at org.springframework.core.serializer.DefaultDeserializer.deserialize(DefaultDeserializer.java:72)
at org.springframework.core.serializer.support.DeserializingConverter.convert(DeserializingConverter.java:73)
… 82 more
原因
修改类成员之前序列化存储起来的对象和修改类成员之后序列化的对象不匹配造成的
例如
修改类成员之前只有一个方法
修改类成员之后
使用修改类成员之后的类反序列化修改类成员之前的对象就会抛出这个异常