微服务分布式缓存:无法反序列化 Cannot deserialize;

问题描述

在拆分SpringBoot项目搭建微服务的过程中,需要配置分布式缓存,对redis进行配置,配置完成后,在启动Knife4j文档界面时报错,发现是redis无法反序列化的问题,但是报错中所指出的类com.jhin.jhinoj.model.entity.User已经实现了序列化接口

问题解决

我的微服务对应的redis数据库中本身存在数据,是我在原先的单体服务中进行登录操作所存下的,由于前后包路径不同,这个数据已经无法在新的微服务项目中反序列化成实例,所以每当服务模块连接redis数据库时就会产生无法反序列化的问题

我在指定redis数据库中清除了原先单体项目缓存的数据,至此,错误解除

什么是序列化与反序列化?

参考:什么是序列化-什么是反序列化

核心报错内容

org.springframework.data.redis.serializer.SerializationException: Cannot deserialize; nested exception is
org.springframework.core.serializer.support.SerializationFailedException: Failed to deserialize payload. 
Is the byte array a result of corresponding serialization for DefaultDeserializer?; 
nested exception is org.springframework.core.NestedIOException: Failed to deserialize object type; 
nested exception is java.lang.ClassNotFoundException: com.jhin.jhinoj.model.entity.User

在这里插入图片描述

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个错误是由于无法将JSON数据反序列化为对象而引起的。通常出现在处理HTTP请求时,当尝试将请求的JSON数据转换为对象时遇到问题。 出现这个错误的原因可能有几种: 1. JSON格式不正确:检查一下接收到的JSON数据是否符合规定的格式,如缺少引号、括号不匹配等,这些错误都可能导致反序列化失败。 2. 类型不匹配:当JSON数据中的某个字段与对象中的属性类型不匹配时,也会出现这个错误。例如,JSON中的某个字段是字符串类型,但对象中对应的属性的类型是整数,这样就无法将字符串转换为整数。 3. 缺少必要的字段:如果JSON数据缺少了对象所需的必要字段,反序列化时也会出错。确保JSON数据中包含了对象所需的所有字段。 4. JSON数据包含了无效的值:有时候JSON数据中包含了一些无效的值,如空值、NaN等,这些值无法被正确反序列化。 解决这个错误的方法包括: 1. 检查和修复JSON格式错误,确保数据格式正确。 2. 检查对象属性与JSON字段的类型是否一致,如果不一致则进行类型转换。 3. 确保JSON数据中包含了对象所需的所有字段,如果缺少则添加。 4. 排除无效值,检查并判断JSON数据中是否包含无效的值,如空值、NaN等,将其修正或排除。 总之,此错误的解决方法主要是通过检查和修复JSON数据的格式、类型和字段,确保数据能够正确地反序列化为对象。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值