SpringBoot整合Spring Data Redis和Jedis报错:java.lang.NoClassDefFoundError: redis/clients/jedis/util/Pool

报错截图

在这里插入图片描述
已整合jar包和编写配置类后,在测试类中测试报错:java.lang.NoClassDefFoundError: redis/clients/jedis/util/Pool

一般来说该种错误都是因为缺少相关jar包,或者是相关的class在运行过程中没有被检测到才会弹出

解决思路

首先也是先参照别人的代码进行整合测试,所以事先考虑到整合过程中可能会出现版本问题,经过查询后,发现Spring Data RedisJedis之间的确存在版本的对应问题。
在这里插入图片描述

然而百度发现一大堆都是复制粘贴 :),然后StackOverflow找到一个相关回答:https://stackoverflow.com/questions/55183019/redis-session-with-java-spring-boot
在这里插入图片描述
好了,我现在确定是版本之间的兼容问题了,再观察我模仿的项目pom文件:

在这里插入图片描述
在这里插入图片描述
版本对应为:spring boot 2.1.4 -> jedis 2.9.0

再观察我自己的pom文件:
在这里插入图片描述
很明显在spring boot的版本上不一致,再结合StackOverflow上看到的版本对应,则应该存在 spring boot 2.1.x -> jedis 2.9.x 的关系,而且spring boot data的版本是跟随着spring boot更新的,所以版本的冲突问题出现在这里。我自己的spring boot版本是2.2.x,故spring boot data 的版本也是如此,所以我选择导入jedis的最新版本3.2.0,毫无意外成功运行。

解决方法

spring-data-redis和jedis之间存在版本对应关系,在spring-data-redis的官方文档中有(然而我没找到),经过查看前人的解决方法和自己的解决方式,得出如下结论:

spring-data-redis版本jedis版本
2.1.x2.9.x
2.2.x3.x

如果最后还报同样的错误,可以先观察一下自己的版本,选择升高或者降低jedis的版本。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值