java.io.InvalidClassException序列化

序列化反序列化失败报错如下:

java.io.InvalidClassException: com.kuanter.model.customer.shop.Shop; local class incompatible: stream classdesc serialVersionUID = -6738454918343091256, local class serialVersionUID = -2228632356656265175

截图如下:

java.io.InvalidClassException序列化_第1张图片

java.io.InvalidClassException序列化_第2张图片

是的我在consumer端序列化该实体类时依赖的是3.2.2-SNAPSHOT版本(改consumer端依赖的该实体版本为3.2.2-SNAPSHOT版本),但是在provider端反序列化时却报错了,为什么错呢?如上图二我的provider端依赖了好几个版本的该实体类,所以反序列化是不知道该用那个所以就会报错,然后我把其他版本删掉只留3.2.2-SNAPSHOT版本,错误搞定。

总结:其实造成这个错误的原因是idea 执行install 造成的,至于为什么会生成这么多版本还没细究。还有一点就是再找错误时很烦躁静不下心,这一点其实是最忌讳的,作为一个开发人员,遇到错误一定要冷静,然后要善于总结。

-------------------------------------------------------------------------------------2016/11/29-------------------------------------------------------------------------

在分布式系统中最好每个实体类都加上serialVersionUID,不要问我为什么,因为公司系统出现过该问题后领导让我给每个实体类都加上了serialVersionUID,问题解决。 


你可能感兴趣的:(java)