升级jedis2.9.0之后无法连接问题
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [redis.clients.jedis.JedisPool]: Constructor threw exception; nested exception is redis.clients.jedis.exceptions.InvalidURIException: Cannot open Redis connection due invalid URI. 127.0.0.1
升级之前配置
<bean id="connectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
<property name="hostName" value="${redis.host}"/>
<property name="port" value="${redis.port}"/>
<property name="poolConfig" ref="jedisPoolConfig"/>
</bean>
升级到jedis2.9.0之后 ,就出现无法连接,可能是更严格了,试了很多发现需要指定类型,修改之后配置
<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
<constructor-arg index="0" ref="jedisPoolConfig"/>
<constructor-arg index="1" value="${redis.host}" type="java.lang.String" />
<constructor-arg index="2" value="${redis.port}" type="int" />
</bean>
另外发现jedisPool无法初始化了,于是又找了好久
以下错误
提示"The constructor JedisPool(GenericObjectPoolConfig, String) refers to the missing type GenericObjectPoolConfig"
最后确认是需要commons-pool2-xx.jar 这个包。然后好了 ,添加如下依赖
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-pool2 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.6.2</version>
</dependency>
再次启动就ok了,看来jedis升级后的兼容性不怎么样,近期打算研究reddsion,欢迎留言交流。