运行应用程序后检测到错误。我找不到任何问题,我需要帮助。
软件包结构由配置和控制器组成。
spring-boot-starter-data-redis redis.clients jedis 3.0.1
package com.arthur.springbootredis.config;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.RedisConnectionFailureException;
import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.GenericToStringSerializer;
@Configuration
public class RedisConfig {
@Bean
JedisConnectionFactory jedisConnectionFactory() {
JedisConnectionFactory jedisConnectionFactory = null;
try {
RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration();
redisStandaloneConfiguration.setDatabase(0);
redisStandaloneConfiguration.setHostName("localhost");
redisStandaloneConfiguration.setPort(6379);
jedisConnectionFactory = new JedisConnectionFactory(redisStandaloneConfiguration);
jedisConnectionFactory.getPoolConfig().setMaxTotal(50);
jedisConnectionFactory.getPoolConfig().setMaxIdle(50);
} catch (RedisConnectionFailureException e) {
e.getMessage();
}
return jedisConnectionFactory;
}
@Bean
@ConditionalOnMissingBean(name = "redisTemplate")
public RedisTemplate<String, Object> redisTemplate() {
final RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();
template.setConnectionFactory(jedisConnectionFactory());
template.setValueSerializer(new GenericToStringSerializer<Object>(Object.class));
template.setEnableTransactionSupport(true);
return template;
}
}
字符串
下面是错误内容
[com/arthur/springbootredis/index/RedisConfig.class]:通过工厂方法示例化Bean失败;嵌套的异常是org. springframework.beans.BeanInstantiationException:未能示例化[org. springframework.data.redis.connection.jedis.JedisConnectionFactory]:工厂方法'jedisConnectionFactory'抛出异常;嵌套异常为java.lang.NoClassDefFoundError:redis/clients/util/SafeEncoder
感谢您的阅读。
3条答案
按热度按时间falq053o1#
您正在尝试使用Jedis 3.0.x,它对Jedis 2.x提供的API进行了突破性的更改。该异常由Spring Data Redis的一部分
JedisConnectionFactory
引发,在撰写本文时,Spring Data Redis仅支持Jedis 2.x。支持Jedis 3 has been implemented但尚未发布。如果您想使用Spring Data Redis,你应该暂时坚持使用Jedis 2.x。对Jedis 3.0的支持将在Spring Data Redis 2.2中发布,这是Spring Data摩尔发布系列的一部分,并将包含在Sping Boot 2.2中。vmpqdwk32#
自2019年7月以来,Sping Boot 2.X与Jedis 3.X兼容(更多信息请参阅Upgrade to Jedis 3.1.0)。对于那些使用Gradle的人,以下是我的组合:
build.gradle
字符串
brtdzjyr3#
不同依赖版本的兼容性存在问题。
尝试将maven
jedis
依赖项设置为字符串
和
型