springboot集成Redisson启动异常: redis:// or rediss:// (for SSL connection)
异常如下
Redis url should start with redis:// or rediss:// (for SSL connection)
具体异常
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.redisson.api.RedissonClient]: Factory method 'redissonClientConfig' threw exception; nested exception is java.lang.IllegalArgumentException: Redis url should start with redis:// or rediss:// (for SSL connection)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) ~[spring-beans-5.2.3.RELEASE.jar:5.2.3.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:651) ~[spring-beans-5.2.3.RELEASE.jar:5.2.3.RELEASE]
... 150 common frames omitted
Caused by: java.lang.IllegalArgumentException: Redis url should start with redis:// or rediss:// (for SSL connection)
at org.redisson.misc.RedisURI.<init>(RedisURI.java:44) ~[redisson-3.16.6.jar:3.16.6]
at org.redisson.connection.MasterSlaveConnectionManager.initSingleEntry(MasterSlaveConnectionManager.java:331) ~[redisson-3.16.6.jar:3.16.6]
at org.redisson.connection.MasterSlaveConnectionManager.<init>(MasterSlaveConnectionManager.java:141) ~[redisson-3.16.6.jar:3.16.6]
at org.redisson.connection.SingleConnectionManager.<init>(SingleConnectionManager.java:30) ~[redisson-3.16.6.jar:3.16.6]
at org.redisson.config.ConfigSupport.createConnectionManager(ConfigSupport.java:190) ~[redisson-3.16.6.jar:3.16.6]
at org.redisson.Redisson.<init>(Redisson.java:67) ~[redisson-3.16.6.jar:3.16.6]
at org.redisson.Redisson.create(Redisson.java:108) ~[redisson-3.16.6.jar:3.16.6]
at com.hx.interview.sharing.redis.lock.redisson.BaseRedissonClientConfig.redissonClientConfig(BaseRedissonClientConfig.java:29) ~[classes/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_291]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_291]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_291]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_291]
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.2.3.RELEASE.jar:5.2.3.RELEASE]
... 151 common frames omitted
解决方案:
配置Redisson连接的时候应该添加 redis:// 或者 rediss:// (连接redis是受保护的ssl)
@Component
@Slf4j
public class BaseRedissonClientConfig {
@Value("${spring.redis.host}")
private String host;
@Value("${spring.redis.port}")
private String port;
@Bean
public RedissonClient redissonClientConfig(){
Config config = new Config();
config.useSingleServer().setAddress("redis://"+host+":"+port);
RedissonClient redissonClient = Redisson.create(config);
return redissonClient;
}
}