当前位置: 首页 > 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)
  • 又有多地推进产科整合
  • 上海明天有雷雨、大风,下周气温在春日舒适区间
  • 长三角主流媒体将走进“来电”宜昌,探寻高质量发展密码
  • 2025“上海之夏”向全球邀约,首批城市定制活动集中亮相
  • 生于1984年,郭宝任湖北黄石市副市长
  • 俄最高法宣布解除针对阿富汗塔利班的禁令