spring-data-redis报错NoSuchMethodError:org.springframework.util.Assert.isTrue

本文解决了一个关于使用Spring框架启动Redis时报错的问题,错误源于版本不兼容。通过将spring-data-redis版本从2.1.0.RELEASE降至1.8.4.RELEASE,问题得以解决。文章还探讨了版本更新可能导致的方法签名变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用Redis启动报错:

org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'redisTemplate' defined in class path resource [applicationContext.xml]: Cannot resolve reference to bean 'jedisConnFactory' while setting bean property 'connectionFactory'; 
nested exception is org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'jedisConnFactory' defined in class path resource [applicationContext.xml]: Instantiation of bean failed; 
nested exception is org.springframework.beans.BeanInstantiationException: 
Failed to instantiate [org.springframework.data.redis.connection.jedis.JedisConnectionFactory]: 
Constructor threw exception; 
nested exception is java.lang.NoSuchMethodError: org.springframework.util.Assert.isTrue(ZLjava/util/function/Supplier;)V

当前pom配置的版本:

 <jedis-version>2.9.0</jedis-version>
 <spring-data-redis-version>2.1.0.RELEASE</spring-data-redis-version>

spring-data-redis-version换到1.8.4.RELEASE。问题解决。

如何快读定位是版本的兼容问题,确实是靠经验哇。
看了下,org.springframework.util.Assert.isTrue()方法至少在2.5就有了,可能版本更新,调整了下。高版本调用的是新增方法。
问题解决来源

java.lang.IllegalStateException: LettuceConnectionFactory was destroyed and cannot be used anymore at org.springframework.util.Assert.state(Assert.java:76) ~[spring-core-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory.assertInitialized(LettuceConnectionFactory.java:1263) ~[spring-data-redis-2.6.2.jar:2.6.2] at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory.getConnection(LettuceConnectionFactory.java:414) ~[spring-data-redis-2.6.2.jar:2.6.2] at org.springframework.data.redis.core.RedisConnectionUtils.fetchConnection(RedisConnectionUtils.java:193) ~[spring-data-redis-2.6.2.jar:2.6.2] at org.springframework.data.redis.core.RedisConnectionUtils.doGetConnection(RedisConnectionUtils.java:144) ~[spring-data-redis-2.6.2.jar:2.6.2] at org.springframework.data.redis.core.RedisConnectionUtils.getConnection(RedisConnectionUtils.java:105) ~[spring-data-redis-2.6.2.jar:2.6.2] at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:210) ~[spring-data-redis-2.6.2.jar:2.6.2] at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:190) ~[spring-data-redis-2.6.2.jar:2.6.2] at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97) ~[spring-data-redis-2.6.2.jar:2.6.2] at org.springframework.data.redis.core.DefaultStreamOperations.read(DefaultStreamOperations.java:305) ~[spring-data-redis-2.6.2.jar:2.6.2] at com.hmdp.service.impl.VoucherOrderServiceImpl$VoucherOrderHandler.handlePendingList(VoucherOrderServiceImpl.java:113) [classes/:na] at com.hmdp.service.impl.VoucherOrderServiceImpl$VoucherOrderHandler.run(VoucherOrderServiceImpl.java:105) [classes/:na] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_442] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_442] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
04-02
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值