凡科轻站,链爱交易平台,望牛墩镇仿做网站,做ppt网站有哪些内容redis报错汇总
在单元测试时#xff0c;使用jedis通常遇到如下报错#xff1a;
实例化报错-连接报错-权限报错。此报错是有顺序的#xff1a;例如#xff0c;若连接报错#xff0c;说明实例化完成#xff0c;即配置文件配对了。若权限报错#xff0c;说明连接…redis报错汇总
在单元测试时使用jedis通常遇到如下报错
实例化报错-连接报错-权限报错。此报错是有顺序的例如若连接报错说明实例化完成即配置文件配对了。若权限报错说明连接通了但密码错误。若实例化就报错说明配置文件配错了没法启动redis客户端更别说去连接了。
具体报错如下
1.实例化报错
Failed to load ApplicationContext.
Error creating bean with name jedisPool defined in class path resource [applicationContext-redis.xml]:
Unsatisfied dependency expressed through constructor parameter 0:
Ambiguous argument values for parameter of type [org.apache.commons.pool2.impl.GenericObjectPoolConfig]
- did you specify the correct bean references as arguments? 出现此错误通常是配置文件出错配置JedisPool出错。 2.连接报错
connect timed out
出现此错误通常是网络问题。一般在公司里内网外网防火墙等各种网络情况。记得切换网络。 3.权限报错 1.没有配置password如果需要密码
NOAUTH Authentication required. 出现此错误说明配置文件没有配password。 2.密码错误
ERR invalid password
出现此错误说明密码错了。 需要注意
如下配置是错误的这也是导致实例化报错的主要原因。 bean idjedisPool classredis.clients.jedis.JedisPoolconstructor-arg namehost value192.168.100.12/constructor-arg nameport value6379/constructor-arg namepassword valuexxx//bean 查看jedis源码发现设置密码JedisPool的构造参数如下 public JedisPool(GenericObjectPoolConfig poolConfig, String host, int port, int timeout, String password) {this(poolConfig, host, port, timeout, password, 0, (String)null);}
即需要配置如下参数 bean classredis.clients.jedis.JedisPool idjedisPool constructor-arg namehost value192.168.100.12/constructor-argconstructor-arg nameport value6379/constructor-argconstructor-arg namepassword valuexxx/constructor-argconstructor-arg nametimeout value3000/constructor-argconstructor-arg namepoolConfig refjedisPoolConfig/constructor-arg/beanbean classredis.clients.jedis.JedisPoolConfig idjedisPoolConfigproperty namemaxIdle value300 /property namemaxTotal value1000 /property namemaxWaitMillis value1000 /property nametestOnBorrow valuefalse /property nameblockWhenExhausted valuefalse //bean 如果redis没有设置密码的话配置就可以很简单 bean idjedisPool classredis.clients.jedis.JedisPoolconstructor-arg namehost value192.168.100.12/constructor-arg nameport value6379//bean
因为JedisPool提供了只需要ip地址和端口的构造参数如下 public JedisPool(String host, int port) {this(new GenericObjectPoolConfig(), host, port, 2000, (String)null, 0, (String)null);}补充
bean的xml文件格式
?xml version1.0 encodingUTF-8?
beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd!-- 这中间写bean --
!-- bean idjedisPool classredis.clients.jedis.JedisPool--
!-- constructor-arg namehost value192.168.100.12/--
!-- constructor-arg nameport value6379/--
!-- /bean--/beans
单元测试类
RunWith(SpringRunner.class)//spring整合JUnit4
ContextConfiguration(locations{classpath:applicationContext-redis.xml})//加载spring配置文件
public class BaseRedisTest {
} 分割线
文章到此已经结束以下是紫薯布丁
Failed to load ApplicationContext. Error creating bean with name jedisPool defined in class path resource [applicationContext-redis.xml]: Unsatisfied dependency expressed through constructor parameter 0: Ambiguous argument values for parameter of type [org.apache.commons.pool2.impl.GenericObjectPoolConfig] - did you specify the correct bean references as arguments?
connect timed out
NOAUTH Authentication required.
ERR invalid password bean idjedisPool classredis.clients.jedis.JedisPool constructor-arg namehost value192.168.100.12/ constructor-arg nameport value6379/ constructor-arg namepassword valuexxx/ /bean public JedisPool(GenericObjectPoolConfig poolConfig, String host, int port, int timeout, String password) { this(poolConfig, host, port, timeout, password, 0, (String)null); } bean classredis.clients.jedis.JedisPool idjedisPool constructor-arg namehost value192.168.100.12/constructor-arg constructor-arg nameport value6379/constructor-arg constructor-arg namepassword valuexxx/constructor-arg constructor-arg nametimeout value3000/constructor-arg constructor-arg namepoolConfig refjedisPoolConfig/constructor-arg /bean bean classredis.clients.jedis.JedisPoolConfig idjedisPoolConfig property namemaxIdle value300 / property namemaxTotal value1000 / property namemaxWaitMillis value1000 / property nametestOnBorrow valuefalse / property nameblockWhenExhausted valuefalse / /bean bean idjedisPool classredis.clients.jedis.JedisPool constructor-arg namehost value192.168.100.12/ constructor-arg nameport value6379/ /bean public JedisPool(String host, int port) { this(new GenericObjectPoolConfig(), host, port, 2000, (String)null, 0, (String)null); }
?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beans xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
!-- 这中间写bean -- !-- bean idjedisPool classredis.clients.jedis.JedisPool-- !-- constructor-arg namehost value192.168.100.12/-- !-- constructor-arg nameport value6379/-- !-- /bean--
/beans RunWith(SpringRunner.class)//spring整合JUnit4 ContextConfiguration(locations{classpath:applicationContext-redis.xml})//加载spring配置文件 public class BaseRedisTest { }