springboot redis: xxx as a subtype of [simple type, class java.lang.Object]: no such class found

错误信息

2023-06-01 00:04:05.186 [http-nio-8800-exec-4] ERROR com.yihang.exception.GlobalException:69 -  msg : Could not read JSON: Could not resolve type id 'com.shiyi.vo.SystemUserVO' as a subtype of `java.lang.Object`: no such class found
 at [Source: (byte[])"{"@class":"cn.dev33.satoken.dao.SaSessionForJacksonCustomized","id":"Authorization:login:session:7","createTime":1685454247115,"dataMap":{"@class":"java.util.concurrent.ConcurrentHashMap","current_user":{"@class":"com.shiyi.vo.SystemUserVO","id":7,"username":"admin","nickname":"管理员","avatar":"http://img.shiyit.com/FjzfvfWYZVED7eXMS4EL8KNR949K","status":1,"roleId":1}},"tokenSignList":["java.util.Vector",[{"@class":"cn.dev33.satoken.session.TokenSign","value":"51b7a831-b33a-4f30-be47-e3f6311"[truncated 36 bytes]; line: 1, column: 214] (through reference chain: cn.dev33.satoken.dao.SaSessionForJacksonCustomized["dataMap"]->java.util.concurrent.ConcurrentHashMap["current_user"]); nested exception is com.fasterxml.jackson.databind.exc.InvalidTypeIdException: Could not resolve type id 'com.shiyi.vo.SystemUserVO' as a subtype of `java.lang.Object`: no such class found
 at [Source: (byte[])"{"@class":"cn.dev33.satoken.dao.SaSessionForJacksonCustomized","id":"Authorization:login:session:7","createTime":1685454247115,"dataMap":{"@class":"java.util.concurrent.ConcurrentHashMap","current_user":{"@class":"com.shiyi.vo.SystemUserVO","id":7,"username":"admin","nickname":"管理员","avatar":"http://img.shiyit.com/FjzfvfWYZVED7eXMS4EL8KNR949K","status":1,"roleId":1}},"tokenSignList":["java.util.Vector",[{"@class":"cn.dev33.satoken.session.TokenSign","value":"51b7a831-b33a-4f30-be47-e3f6311"[truncated 36 bytes]; line: 1, column: 214] (through reference chain: cn.dev33.satoken.dao.SaSessionForJacksonCustomized["dataMap"]->java.util.concurrent.ConcurrentHashMap["current_user"])

错误描述

根据提供的日志信息,出现了一个异常:

Could not resolve type id 'com.shiyi.vo.SystemUserVO' as a subtype of java.lang.Object: no such class found

这个异常通常发生在使用 Jackson 序列化和反序列化 JSON 数据时,尝试解析一个未找到的类。

根据日志中的信息,看起来在序列化或反序列化过程中,Jackson 需要将 JSON 数据转换为 com.shiyi.vo.SystemUserVO 类型的对象,但是在应用程序的类路径中找不到该类。

之前代码是 com.shiyi.vo.SystemUserVO 类,我现在改为 com.yihang.vo.SystemUserVO 类,出现上面的错误信息,为什么没有了 com.shiyi.vo.SystemUserVO 类,还会出现,这是为什么呢?

解决方法

  1. 搜索整个项目代码,确保没有任何地方引用了 com.shiyi.vo.SystemUserVO 类。特别是在配置文件、其他类的引用和配置项中检查。
  2. 检查与序列化和反序列化相关的代码,如 Jackson 的配置、自定义序列化器或反序列化器等。确保没有任何地方使用了 com.shiyi.vo.SystemUserVO 类。
  3. 检查项目的构建配置,如 Maven 或 Gradle 的依赖项。确保没有依赖项仍然引用了 com.shiyi.vo.SystemUserVO 类。清理和重新构建项目,以确保修改生效。可以尝试删除编译输出目录(如 target 或 build 文件夹),然后重新编译项目。
  4. 清除redis缓存

我的解决

我将前面三种方法都一一试过了之后,发现还是不行,后面看着错误日志,想了想,是否是之前,没有改动前,启动了项目,存储了com.shiyi.vo.SystemUserVO 的redis缓存???

接着我清除redis缓存,再次启动项目。哎,可以了,项目没有报错。

注意

清除redis,一定要确定清楚了以后才执行清空缓存的命令,如果不确定能不能清除,最好先确定了以后才清楚,否则不要轻易清除。

常见命令及作用:

flushall:清空整个redis 服务器的数据(删除所有数据库的所有 key )。
flushdb:清空当前数据库中的所有 key。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值