You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用Redis相关API时遇SerializationException序列化异常求助

排查Redis反序列化ClassNotFoundException问题
  • 检查Person类的定义与序列化配置

    • 确认Person类的全限定名确实是com.example.demospring.Person,排查包名、类名的拼写错误(包括大小写)
    • 确保Person类实现了java.io.Serializable接口;若使用Jackson序列化,需确保类上有@Data、@NoArgsConstructor等必要注解
    • 核对PersonConfig中的RedisTemplate配置,确认序列化器(如JdkSerializationRedisSerializer、Jackson2JsonRedisSerializer)的类型与存储数据时一致,且未指定错误的类路径
  • 验证Redis存储的数据兼容性

    • 用redis-cli执行命令LRANGE person 0 -1,查看存储的原始数据格式:
      • 若为JDK序列化字节流,检查流中携带的类全限定名是否与当前项目的Person类完全匹配
      • 若数据是用旧的序列化规则(或不同版本的Person类)存储的,先执行DEL person清空旧数据,重新写入后再测试接口
  • 排查项目构建与依赖问题

    • 检查pom.xml中spring-boot-starter-data-redis等Redis相关依赖的版本,避免依赖冲突
    • 确认Person类已被正确编译打包:解压项目生成的jar包,查看com/example/demospring目录下是否存在Person.class文件
    • 多模块项目需确认Person类所在模块已被正确引入依赖,且完成编译构建
  • 解决类加载器相关问题

    • 若使用自定义序列化器,确保反序列化时使用当前应用的类加载器。以Jackson序列化为例,配置示例:
      @Bean
      public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
          RedisTemplate<String, Object> template = new RedisTemplate<>();
          template.setConnectionFactory(connectionFactory);
          
          Jackson2JsonRedisSerializer<Person> serializer = new Jackson2JsonRedisSerializer<>(Person.class);
          ObjectMapper objectMapper = new ObjectMapper();
          objectMapper.registerModule(new JavaTimeModule());
          objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
          objectMapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL);
          serializer.setObjectMapper(objectMapper);
          
          template.setValueSerializer(serializer);
          template.setHashValueSerializer(serializer);
          template.setKeySerializer(new StringRedisSerializer());
          template.setHashKeySerializer(new StringRedisSerializer());
          return template;
      }
      

内容的提问来源于stack exchange,提问作者Sainath Macharla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 05:37:09