java.lang.IllegalArgumentException: hostname can't be null
报的错误是这个,多次检查,Debug之后无果,最后是在配置上面找到了突破口
分析:
1、JedisPool类中的方法可能有引起歧义的参数存在,先看下我的配置情况,
这是出问题的配置
<!-- 创建连接池对象 -->
<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
<constructor-arg index="0" ref="jedisConfig"></constructor-arg>
<constructor-arg index="1" value="127.0.0.1"></constructor-arg>
<constructor-arg index="2" value="6379"></constructor-arg>
</bean>
2、在JedisPool中找到了参数不同类型的方法:
我这里需要设置的是一个String类型的参数,但是可能由于没有指定参数类型就导致了编译器运行到这里随机分配到了URl参数的类型方法(不知道这里的分配策略是怎样的,因为有成功的情况)
3、解决方案
在配置代码加上了指定数据类型Type的属性设置
<!-- 创建连接池对象 -->
<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
<constructor-arg index="0" ref="jedisConfig"></constructor-arg>
<constructor-arg index="1" type="java.lang.String" value="127.0.0.1"></constructor-arg>
<constructor-arg index="2" type="int" value="6379"></constructor-arg>
</bean>