java.io.InvalidClassException
这是一个序列化的问题。
我们用的是ehcache,它会在jvm停止时,将对象序列化,然后将其存储到磁盘上,
当工程启动时,会将其读出来,如果,这时候磁盘上的那个对象的UID,与你工程里面的类的UID不同,便不能反序列化,之所以UID不同
可能时因为你把类的属性给改了,从新计算的UID变了
解决方案。
将磁盘上的序列化对象给删了
或是加上一句
private static final long serialVersionUID=11111111L;
后面这个具体的数是你报错的时候的那个数(java.io.InvalidClassException: PublishInfMsg; local class incompatible:
stream classdesc serialVersionUID =
11111111111L, local class serialVersionUID = 222222)。
本文解决使用ehcache时遇到的序列化问题,具体为对象UID变化导致无法反序列化的错误。提供了解决方案:清理磁盘上的序列化对象或在类中声明serialVersionUID。通过示例解释了错误原因及如何避免。
1487

被折叠的 条评论
为什么被折叠?



