当前位置: 代码迷 >> 综合 >> local class incompatible: stream classdesc serialVersionUID = -6513709415809811854, local class seri
  详细解决方案

local class incompatible: stream classdesc serialVersionUID = -6513709415809811854, local class seri

热度:48   发布时间:2024-01-20 02:49:28.0

local class incompatible: stream classdesc serialVersionUID = -6513709415809811854, local class serialVersionUID = -7166464393377422509

今天在更新项目后,接口抛 local class incompatible: stream classdesc serialVersionUID = -6513709415809811854, local class serialVersionUID = -7166464393377422509 异常。通过查询相关信息发现是redis 在做缓存的时候序列化失败造成的。原因是同事在Java bean里面新增加了几个属性,造成序列化失败。

解决方法有两种
一:
情况缓存数据库里面的缓存。刷新接口就好了
连接redis 选择库, flushdb

二:
在java bean 中 只能序列化id

    /*** 序列化id*/private static final long serialVersionUID = 4125096758372084309L;

编译后,重新打包发布就好了

总结:
两个方法都可以解决问题,但是各个方法各有优劣

方法一: 解决起来,快速,方便,但是如果缓存中数据比较多,会造成缓存雪崩,数据库的压力突然真加。同时下次新加字段,还是会出现这个问题,治标不治本。 所有不太推荐使用这个方法

方法二: 相比较方法一,需要修改代码,并重新编译,打包,并重启服务,繁琐点,但是这次解决后,以后不会在出现这个问题。一劳永逸。所有比较推荐用这个方法

  相关解决方案