欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > class com.alibaba.fastjson.JSONObject cannot be cast to class

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

2025/4/22 14:55:31 来源:https://blog.csdn.net/W_A_Hao/article/details/147403320  浏览:    关键词: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;}}

运行结果

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词