hardwork12 2017-10-15 11:18 采纳率: 0%
浏览 2172

dubbox 遇到的kryo序列化问题,搞了2天未果

我先把错误贴出来吧
这是控制台报错日志
我的序列化是这样配置的
图片说明
user用户管理依赖这个通用接口包,
web项目也依赖这个通用接口包,然后都会调用这个序列化的实现,web上可以请求到user里面,但是返回的时候就报序列化错误了。搞了2天了。哪位好心人帮忙看一下吧

  • 写回答

1条回答 默认 最新

  • 写代码的小吴 2022-09-21 19:36
    关注
    1. 对应的实体类应该是有实现了 Serializable 接口
    2. 对应的实体类应该是加了 "private static final long serialVersionUID = 2506741148223987118L;" 这类标记
    3. 消费者或者生产者其中一方更新了新的实体,比如在这个实体类上加了新的 field

    三者结合起来,导致了这个错误,其实归根到底就是 kryo 会缓存所有序列化/反序列化的数据,并且生成对应的 class ID,一旦遇到相同但不同版本的类就会出现类似的异常,解决方法只能是保证消费者跟生产者都用相同版本的实体。

    或者改成用 Hessian / JSON 吧,起码这个序列化方式不会对类的版本这么敏感,增加或者减少实体类的 field 不会导致任何一方出现序列化/反序列化异常。

    评论

报告相同问题?

悬赏问题

  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换