jedis的redis/clients/util/SafeEncoder找不到

作者: followtry | 2021-09-27 | - | 字数 74 | 阅读
「编辑」 「本文源码」

环境

  • spring-boot: 2.1.18.RELEASE
  • spring-boot-starter-data-redis: 2.1.18.RELEASE
  • spring-data-redis: 2.1.21.RELEASE
  • jedis: 3.2.0

现象及解决方式

新项目中将redis的驱动换为jedis,使用了3.2.0版本,在本地编译时没有问题。但是在启动时会报错。

报错信息

尝试了升级jedis仍然不管用,发现即使有SafeEncoder类但是仍然提示找不到。偶然间发现类型相同,但是类路径不同。 将报错的类路径redis.clients.util.SafeEncoder在搜索引擎里搜索了下,发现该路径是jedis的2.9.0版本中的。

SafeEncoder的不同类路径

因此将版本降级为2.9.0后,项目成功启动起来。

升级

另外,也可以通过升级spring-boot版本的形式将spring-data-redis的版本一并升级。 我将spring-boot升级为了2.2.13.RELEASE,相应的spring-data-redis版本升级为了2.3.7.RELEASE,这样也可以解决SafeEncoder找不到的问题。

分析

主要就是因为spring-data-redis包中的org.springframework.data.redis.connection.jedis.JedisConverters类对jedis的依赖版本不同 ,导致jar包中引入的类路径也不同。

  • spring-data-redis2.3.7.RELEASE版本中是引入的import redis.clients.jedis.util.SafeEncoder;
  • spring-data-redis2.1.18.RELEASE版本中是引入的import redis.clients.util.SafeEncoder;

版权声明:本文由 followtry 在 2021年09月27日发表。本文采用CC BY-NC-SA 4.0许可协议,非商业转载请注明出处,不得用于商业目的。
文章题目及链接:《jedis的redis/clients/util/SafeEncoder找不到




  相关文章:

「游客及非Github用户留言」:

「Github登录用户留言」:

TOP