为了账号安全,请及时绑定邮箱和手机立即绑定

Serializable class not found 移动类包时抛出CLASSNAME错误

Serializable class not found 移动类包时抛出CLASSNAME错误

慕娘9325324 2022-05-12 15:15:43
我正在使用 Redis(通过 redisson)我有一个 DTO 类,我正在将反序列化序列化为 Redis,我使用的编解码器是:org.redisson.codec.FstCodec尽管在类的 DTO 类中显式设置了:serialVersionUID,但当我将类移动到不同的命名空间时,我得到以下异常:java.io.IOException: java.lang.RuntimeException: class not found CLASSNAME:db.data.coins.CoinDTO loader:jdk.internal.loader.ClassLoaders$AppClassLoader@6ed3ef1 在示例中,我从包中移动了类:db.data.coins.CoinDTO打包:dto链接到 fstCodec github:关联package dto; // altering packageimport java.io.Serializable;import java.sql.Timestamp;public class CoinDTO implements Serializable {    static final long serialVersionUID = 1L;    private int id;    private double amount;    private Timestamp timestamp;   //Getters and setters}我想更改包并仍然从 Redis 获取课程。提前谢谢了附言我目前处理它的方式是使用json序列化对象,然后将其设置为redis,但这只是双重序列化,我想避免这种情况
查看完整描述

1 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

尽管在类的 DTO 类中显式设置了:serialVersionUID,但当我将类移动到不同的命名空间时,我得到以下异常:

如果对象的包或类名已更改,则无法反序列化对象。

我目前处理它的方式是使用 json 序列化对象,然后将其设置为 redis

您可以将 Redisson 设置为 Jackson,如下所示codec = org.redisson.codec.JsonJacksonCodec


查看完整回答
反对 回复 2022-05-12
  • 1 回答
  • 0 关注
  • 215 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号