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)。