Error:java.io.InvalidClassException异常解决

异常信息:

Caused by:java. io. InvalidClassException: com. eastcom xxx.xxxxxx. bean. AlarmReq; local class incompatible: stream classdesc serialversionUID =8050743254081999660, local class seriaiversionuId = 6638111461888145730

异常原因
对象序列化的时候会存到redis内存中,然后又再通过 redisTemplate.getValueSerializer().deserialize() 方法将数据反序列化到bean对象,如果当前bean对象发生变化的话,即加了属性的话,就会导致serialVersionUID会变。

由于序列化时该类的serialVersionUID是JVM根据类名及其属性的哈希值生成的。当类的属性有变动时,serialVersionUID也会相应变动,从而导致redis中的老数据反序列化时,serialVersionUID匹配不上而报错。

解决方案

一:
在报错类属性前添加代码
private static final long serialVersionUID = 8050743254081999660L;
这里的UID与上面的stream classdesc serialversionUID对应
二:
清空当前服务所链接的redis数据;
flushdb

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值