首页 > 解决方案 > NoSuchMethodError: org.springframework.data.redis.core.RedisTemplate.delete(Ljava/lang/Object;)V 同时将 Spring boot 从 1.5.3 升级到 2.1.6

问题描述

我正在将 spring boot 从 1.5.3 版本升级到 2.1.6 版本。我添加了以下依赖项:

classpath('org.springframework.boot:spring-boot-gradle-plugin:2.1.6.RELEASE')
compile('org.springframework.boot:spring-boot-starter-data-redis')
  {
    exclude group: 'io.lettuce', module: 'lettuce-core'
  } 
compile('redis.clients:jedis:2.9.0')

我收到以下错误:

引起:java.lang.NoSuchMethodError: org.springframework.data.redis.core.RedisTemplate.delete(Ljava/lang/Object;)V at com.aonhewitt.upoint.cache.config.provider.impl.RedisCacheObjectProviderImpl.delete( RedisCacheObjectProviderImpl.java:292) 在 com.aonhewitt.upoint.cache.util.DistributedCacheUtil.deleteCacheKey(DistributedCacheUtil.java:490) 在 com.aonhewitt.upoint.cache.util.DistributedCacheUtil$$FastClassBySpringCGLIB$$$10d7e0fa.invoke() 在org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) 在 org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:684) 在 com.aonhewitt.upoint.cache.util。 DistributedCacheUtil$$EnhancerBySpringCGLIB$$15db3ca8.deleteCacheKey() 在 com.aonhewitt.upoint.portal.configuration.util.ConfigurationParmUtil。manageClntParmKeysInRedis(ConfigurationParmUtil.java:49) 在 com.aonhewitt.portal.configuration.workengine.ConfigurationController.processRequest(ConfigurationController.java:234) 在 com.aonhewitt.portal.configuration.workengine.ConfigurationGateway.processRequest(ConfigurationGateway.java:56)在 com.aonhewitt.portal.configuration.service.util.ConfigurationInit.load(ConfigurationInit.java:34) 在 com.aonhewitt.upoint.core.ConfigMgrStartUp.init(ConfigMgrStartUp.java:59) 在 sun.reflect.NativeMethodAccessorImpl.invoke0 (本机方法)在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498 ) 在 org.springframework.beans.factory.annotation。InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:363) at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:307) at org.springframework.beans.factory.anforeProcessor.Innotation.Init

标签: javaspringspring-bootredis

解决方案


你已经拥有了 starter-data-redis 和 jedis-client。Jedis 与 spring-data-redis 一起工作。或者 starter-data-redis 自己工作。以下组合对我有用:

org.springframework.data:spring-data-redis:jar:2.4.8:compile redis.clients:jedis:jar:3.3.0:compile

参考链接:https ://www.baeldung.com/spring-data-redis-tutorial


推荐阅读