我正在使用 Redis(通過 redisson)我有一個 DTO 類,我正在將反序列化序列化為 Redis,我使用的編解碼器是:org.redisson.codec.FstCodec盡管在類的 DTO 類中顯式設(shè)置了:serialVersionUID,但當(dāng)我將類移動到不同的命名空間時,我得到以下異常: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:關(guān)聯(lián)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序列化對象,然后將其設(shè)置為redis,但這只是雙重序列化,我想避免這種情況
1 回答

倚天杖
TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個贊
盡管在類的 DTO 類中顯式設(shè)置了:serialVersionUID,但當(dāng)我將類移動到不同的命名空間時,我得到以下異常:
如果對象的包或類名已更改,則無法反序列化對象。
我目前處理它的方式是使用 json 序列化對象,然后將其設(shè)置為 redis
您可以將 Redisson 設(shè)置為 Jackson,如下所示codec = org.redisson.codec.JsonJacksonCodec
添加回答
舉報(bào)
0/150
提交
取消