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

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;}}

运行结果

在这里插入图片描述

http://www.xdnf.cn/news/890.html

相关文章:

  • Docker 镜像、容器和 Docker Compose的区别
  • 使用PyTorch实现图像增广与模型训练实战
  • 版本控制利器——SVN简介
  • SVN权限配置及连接指南
  • 年化112.5%,最大回撤24.3%,卡玛比率4.62 | polars因子引擎重构完成(python源代码下载)
  • android的 framework 有哪些知识点和应用场景
  • 如何修复WordPress中“您所关注的链接已过期”的错误
  • uniapp打ios包
  • Spark_SQL
  • 第十四届蓝桥杯 2023 C/C++组 有奖问答
  • 算法 | 鲸鱼优化算法(WOA)原理,公式,应用,算法改进研究综述,完整matlab代码
  • 集成学习实际案例
  • 如何在量子计算时代保障 Sui 的安全性
  • C++模板进阶
  • 5.2.1 CallerMemberName的使用
  • Java 服务器端 jar 包内 class 文件替换与配置文件修改高级技术指南
  • SQL 使用 UPDATE FROM 语法进行更新
  • C++回溯算法详解
  • 在线查看【免费】vsd, vsdx/wmf, emf /psd, eps/pdf ,ofd, rtf/xmind/bpmn/eml/epub文件格式网
  • Elasticsearch插件:IDEA中的Elasticsearch开发利器
  • 【Unity笔记】Unity音视频播放监听器封装笔记:VideoPlayer + AudioSource事件触发与编辑器扩展
  • leetcode:LCP 01. 猜数字(python3解法)
  • 并发设计模式之双缓冲系统
  • 10天学会嵌入式技术之51单片机-day-4
  • 安装WSL2.0
  • LX4-数据手册相关
  • 一个很简单的机器学习任务
  • 我用deepseek做了一个提取压缩文件夹下pdf和word文件工具
  • 解决 Ubuntu 下 VTune 无法收集 CPU 硬件时间计数数据的问题
  • Android Kotlin+Compose首个应用