当前位置: 首页 > news >正文

class com.alibaba.fastjson.JSONObject cannot be cast to class

class com.alibaba.fastjson.JSONObject cannot be cast to class

在做接口测试的时候,携带一个可用的token,打算debug看看代码的执行过程,由于Redis配置类的不完整导致报错在这里插入图片描述

这是原本的Redis配置类

@Configuration
public class RedisConfig {@Bean@SuppressWarnings(value = {"unchecked", "rawtypes"})public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory connectionFactory) {// 创建RedisTemplate实例RedisTemplate<Object, Object> template = new RedisTemplate<>();// 设置Redis连接工厂template.setConnectionFactory(connectionFactory);// 创建FastJsonRedisSerializer实例,用于序列化和反序列化Redis中的值FastJsonRedisSerializer serializer = new FastJsonRedisSerializer(Object.class);// 使用StringRedisSerializer来序列化和反序列化Redis的key值template.setKeySerializer(new StringRedisSerializer());// 设置值的序列化器为FastJsonRedisSerializertemplate.setValueSerializer(serializer);// 设置Hash的key的序列化器为StringRedisSerializertemplate.setHashKeySerializer(new StringRedisSerializer());// 设置Hash的值的序列化器为FastJsonRedisSerializertemplate.setHashValueSerializer(serializer);// 初始化RedisTemplate的属性template.afterPropertiesSet();// 返回配置好的RedisTemplate实例return template;}}

在一番捣鼓后,配置类依旧有问题,期间怀疑过fastJson的版本问题等,最后确定为配置类问题,后面抄了一位老哥的配置类: 老哥链接结合Ai修改了一下为如下版本

pom.xml

<--> 版本不要太老,不然找不到 GenericFastJsonRedisSerializer.class </-->
<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>2.0.51</version>
</dependency>

RedisConfig.class

@Configuration
public class RedisConfig {@Beanpublic RedisTemplate<String, Object> redisTemplate(LettuceConnectionFactory lettuceConnectionFactory) {// 使用 GenericFastJsonRedisSerializer 确保正确反序列化GenericFastJsonRedisSerializer fastJsonRedisSerializer = new GenericFastJsonRedisSerializer();// 配置 FastJSON 安全设置ParserConfig.getGlobalInstance().setAutoTypeSupport(false); // 禁用 AutoTypeParserConfig.getGlobalInstance().addAccept("com.wdw.securitytoken.LoginUser"); // 白名单// 配置 RedisTemplateRedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();redisTemplate.setConnectionFactory(lettuceConnectionFactory);// 序列化器RedisSerializer<String> stringSerializer = new StringRedisSerializer();redisTemplate.setKeySerializer(stringSerializer); // Key 序列化redisTemplate.setValueSerializer(fastJsonRedisSerializer); // Value 序列化redisTemplate.setHashKeySerializer(stringSerializer); // Hash Key 序列化redisTemplate.setHashValueSerializer(fastJsonRedisSerializer); // Hash Value 序列化redisTemplate.afterPropertiesSet();return redisTemplate;}}

运行结果

在这里插入图片描述

相关文章:

  • 安装WSL2.0
  • 计算机组成与体系结构:内存层次结构(Memory Hierarchy)
  • Kotlin协程学习笔记
  • 无人机飞控运行在stm32上的RTOS实时操作系统上,而不是linux这种非实时操作系统的必要性
  • 微服务架构下数据库范式的失效与反范式设计的崛起
  • wps表格保存时提示上传错误报0XFFF40005错误,提示撤销之前操作或者另存为
  • JavaScript 渲染内容爬取:Puppeteer 入门
  • 线性DP:最短编辑距离
  • 2025.04.20【Lollipop】| Lollipop图绘制命令简介
  • 实验四 Java图形界面与事件处理
  • C++学习:六个月从基础到就业——内存管理:智能指针详解
  • 集成学习实际案例
  • 储能集装箱电池簇安装支架结构设计(大纲)
  • 代码随想录第22天:回溯算法4
  • 从规则到大模型:知识图谱信息抽取实体NER与关系RE任务近10年演进发展详解
  • 项目班——0419——functionbind生产消费(未完成)
  • 如何测试雷达与相机是否时间同步?
  • list的学习
  • Missashe考研日记-day23
  • 【数字图像处理】彩色图像处理(1)
  • 新华时评:需要“重新平衡”的是美国心态
  • 江西德安回应“义门陈遗址建筑被没收”:将交由规范的义门陈相关社会组织管理
  • 狄威已任国铁集团副总经理
  • 卡尼领导的加拿大自由党在联邦众议院选举中获胜
  • 海南儋州市委副书记任延新已赴市人大常委会履新
  • 专业竞演、剧场LIVE直播,32位越剧新星逐梦上海