Linux中的InvalidURIException: Cannot open Redis connection due invalid URI

InvalidURIException: Cannot open Redis connection due invalid URI

 

自己在windows下开发,连的redis没有任何问题,部署到Linux机器上就开始提示Cannot open Redis connection due invalid URI 

一开始以为是redis安装的有问题绑定了ip,各种调试试错,发现也么有问题(让自己熟悉安装配置了n次各个版本的redis)

今天 静下心仔细看了报错的异常:

  1. Caused by: redis.clients.jedis.exceptions.InvalidURIException: Cannot open Redis connection due invalid URI. x.x.x.x  
  2.     at redis.clients.jedis.JedisFactory.<init>(JedisFactory.java:37)  
  3.     at redis.clients.jedis.JedisPool.<init>(JedisPool.java:94)  
  4.     at redis.clients.jedis.JedisPool.<init>(JedisPool.java:89)  


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

 
  1. <!-- JedisPool  configuration-->  
  2. lt;bean id="jedisPool" class="redis.clients.jedis.JedisPool">    
  3.    <constructor-arg index="0" ref="poolConfig" />    
  4.    <constructor-arg index="1" value="${redis.host}" type="java.lang.String" />    
  5.    <constructor-arg index="2" value="${redis.port}" type="int"/>    
  6. lt;/bean>    



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

  JedisPool(GenericObjectPoolConfig, String, int)  

  JedisPool(GenericObjectPoolConfig, URI, int)  

转载于:https://www.cnblogs.com/shiqiao/p/6144102.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值