您的位置:首页 > 数据库 > Redis

Cannot open Redis connection due invalid URI

2017-07-26 11:39 363 查看
转自 http://blog.csdn.net/running_snail_/article/details/51679538
InvalidURIException: Cannot open Redis connection
due invalid URI

自己在windows下开发,连的redis没有任何问题,部署到Linux机器上就开始提示Cannot
open Redis connection due invalid URI 
一开始以为是redis安装的有问题绑定了ip,各种调试试错,发现也么有问题(让自己熟悉安装配置了n次各个版本的redis)
今天 静下心仔细看了报错的异常:

[java] view
plain copy

Caused by: redis.clients.jedis.exceptions.InvalidURIException: Cannot open Redis connection due invalid URI. x.x.x.x  

    at redis.clients.jedis.JedisFactory.<init>(JedisFactory.java:37)  

    at redis.clients.jedis.JedisPool.<init>(JedisPool.java:94)  

    at redis.clients.jedis.JedisPool.<init>(JedisPool.java:89)  

仔细看了源码,发现是自己使用spring初始化JedisPool时未指定结构方法参数的类型导致了,初始化对象时跑到了别的初始化话方法上了

[html] view
plain copy

<!-- JedisPool  configuration-->  

lt;bean id="jedisPool" class="redis.clients.jedis.JedisPool">    

   <constructor-arg index="0" ref="poolConfig" />    

   <constructor-arg index="1" value="${redis.host}" type="java.lang.String" />    

   <constructor-arg index="2" value="${redis.port}" type="int"/>    

lt;/bean>    

如果constructor-arg 未指定type 初始化的时候JedisPool有两个相同参数个数的构造方法会选择错误,造成类似于这样的错误。

[java] view
plain copy

JedisPool(GenericObjectPoolConfig, String, int)  

[java] view
plain copy

JedisPool(GenericObjectPoolConfig, URI, int)  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐