redis jedis 单元测试 报错集锦 汇总 junit
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 id="jedisPool" class="redis.clients.jedis.JedisPool"><constructor-arg name="host" value="192.168.100.12"/><constructor-arg name="port" value="6379"/><constructor-arg name="password" value="xxx"/></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 class="redis.clients.jedis.JedisPool" id="jedisPool" ><constructor-arg name="host" value="192.168.100.12"></constructor-arg><constructor-arg name="port" value="6379"></constructor-arg><constructor-arg name="password" value="xxx"></constructor-arg><constructor-arg name="timeout" value="3000"></constructor-arg><constructor-arg name="poolConfig" ref="jedisPoolConfig"></constructor-arg></bean><bean class="redis.clients.jedis.JedisPoolConfig" id="jedisPoolConfig"><property name="maxIdle" value="300" /><property name="maxTotal" value="1000" /><property name="maxWaitMillis" value="1000" /><property name="testOnBorrow" value="false" /><property name="blockWhenExhausted" value="false" /></bean>
如果redis没有设置密码的话,配置就可以很简单:
<bean id="jedisPool" class="redis.clients.jedis.JedisPool"><constructor-arg name="host" value="192.168.100.12"/><constructor-arg name="port" value="6379"/></bean>
因为JedisPool提供了只需要ip地址和端口的构造参数,如下:
public JedisPool(String host, int port) {this(new GenericObjectPoolConfig(), host, port, 2000, (String)null, 0, (String)null);}
补充:
bean的xml文件格式:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!-- 这中间写bean -->
<!-- <bean id="jedisPool" class="redis.clients.jedis.JedisPool">-->
<!-- <constructor-arg name="host" value="192.168.100.12"/>-->
<!-- <constructor-arg name="port" value="6379"/>-->
<!-- </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 id="jedisPool" class="redis.clients.jedis.JedisPool">
<constructor-arg name="host" value="192.168.100.12"/>
<constructor-arg name="port" value="6379"/>
<constructor-arg name="password" value="xxx"/>
</bean>
public JedisPool(GenericObjectPoolConfig poolConfig, String host, int port, int timeout, String password) {
this(poolConfig, host, port, timeout, password, 0, (String)null);
}
<bean class="redis.clients.jedis.JedisPool" id="jedisPool" >
<constructor-arg name="host" value="192.168.100.12"></constructor-arg>
<constructor-arg name="port" value="6379"></constructor-arg>
<constructor-arg name="password" value="xxx"></constructor-arg>
<constructor-arg name="timeout" value="3000"></constructor-arg>
<constructor-arg name="poolConfig" ref="jedisPoolConfig"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.JedisPoolConfig" id="jedisPoolConfig">
<property name="maxIdle" value="300" />
<property name="maxTotal" value="1000" />
<property name="maxWaitMillis" value="1000" />
<property name="testOnBorrow" value="false" />
<property name="blockWhenExhausted" value="false" />
</bean>
<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
<constructor-arg name="host" value="192.168.100.12"/>
<constructor-arg name="port" value="6379"/>
</bean>
public JedisPool(String host, int port) {
this(new GenericObjectPoolConfig(), host, port, 2000, (String)null, 0, (String)null);
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 这中间写bean -->
<!-- <bean id="jedisPool" class="redis.clients.jedis.JedisPool">-->
<!-- <constructor-arg name="host" value="192.168.100.12"/>-->
<!-- <constructor-arg name="port" value="6379"/>-->
<!-- </bean>-->
</beans>
@RunWith(SpringRunner.class)//spring整合JUnit4
@ContextConfiguration(locations={"classpath:applicationContext-redis.xml"})//加载spring配置文件
public class BaseRedisTest {
}
相关文章:
redis jedis 单元测试 报错集锦 汇总 junit
redis报错汇总 在单元测试时,使用jedis通常遇到如下报错: 实例化报错->连接报错->权限报错。此报错是有顺序的:例如,若连接报错,说明实例化完成,即配置文件配对了。若权限报错,说明连接…...
AMEYA360:兆易创新获得ISO 26262 ASIL D流程认证, 汽车功能安全管理体系再上新台阶
中国北京(2023年8月29日) —— 业界半导体器件供应商兆易创新GigaDevice(股票代码 603986)今日宣布,获得由国际公认的测试、检验和认证机构通标标准技术服务有限公司(以下简称SGS)授予的ISO 26262:2018汽车功能安全最高等级ASIL D流程认证证书,这标志着兆…...
MySQL binlog的几种日志录入格式以及区别
🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师…...
C# 案例题
1. // # hello world using System; namespace HelloWorldApplication {class HelloWorld{static void Main(string[] args) {/*my first C# program*/Console.WriteLine("HelloWorld C#");Console.ReadKey();}} } 2. // C# 计算矩形的面积 /*计…...
拒绝摆烂!C语言练习打卡第七天
🔥博客主页:小王又困了 📚系列专栏:每日一练 🌟人之为学,不日近则日退 ❤️感谢大家点赞👍收藏⭐评论✍️ 目录 一、选择题 📝1.第一题 📝2.第二题 Ὅ…...
【动态规划】状态压缩dp
【动态规划】状态压缩dp...
Java eight 解读流(Stream)、文件(File)、IO和异常处理的使用方法
目录 Java 流(Stream)、文件(File)和IO读取控制台输入读写文件FileInputStreamFileOutputStream Java目录 Java 异常处理 Java 流(Stream)、文件(File)和IO java.io 包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。 Java.io 包中的流支持很多种…...
胜券汇:行业持续轮动 缺乏主线下关注反转预期的方向
前史行情4年一轮回,中心在于微观环境的类似性。首要,复盘前史,2016-2019年和2020年至今的行情走势较为类似,历经约1年半的长牛,约1年的长熊,阅历1个季度快速反弹后继续约3个季度的震动期。其次,…...
java+ssm+mysql农场信息管理系统
项目介绍: 本系统为基于jspssmmysql的农场信息管理系统,功能如下: 用户:注册登录系统,菜地信息管理,农作物信息管理,种植信息管理,客户信息管理,商家信息管理ÿ…...
【App出海成功案例】 | NetMarvel 帮助广告主ARPU增长45%,ECPM增长50%,付费率涨幅30%
中国App何以扬帆出海? 出海热发展到今天,中国App席卷西方世界的神话被一一打造,手游/非游双面开花,成功案例作为赛道代表,也成为众多出海广告主一一效仿的风向标。 它们在用户增长、变现收益上的打法是怎样的&#x…...
CSDN每日一练 |『鬼画符门莲台争夺战』『等差数列』『 路灯亮度』2023-08-31
CSDN每日一练 |『鬼画符门莲台争夺战』『等差数列』『 路灯亮度』2023-08-31 一、题目名称:鬼画符门莲台争夺战二、题目名称:等差数列三、题目名称:等差数列四、题目名称:路灯亮度路灯亮度』2023-08-31) 一、题目名称:鬼画符门莲台争夺战 时间限制:1000ms内存限制:256M …...
自编码器AE全方位探析:构建、训练、推理与多平台部署
本文深入探讨了自编码器(AE)的核心概念、类型、应用场景及实战演示。通过理论分析和实践结合,我们详细解释了自动编码器的工作原理和数学基础,并通过具体代码示例展示了从模型构建、训练到多平台推理部署的全过程。 关注TechLead&…...
SpringBoot - Google EventBus、AsyncEventBus
介绍 EventBus 顾名思义,事件总线,是一个轻量级的发布/订阅模式的应用模式,最初设计及应用源与 google guava 库。 相比于各种 MQ 中间件更加简洁、轻量,它可以在单体非分布式的小型应用模块内部使用(即同一个JVM范围…...
Tauri打包windows应用配置中文界面
使用 Tauri Rust 开发桌面应用,在 windows 系统上,打包后安装包名称后缀、安装界面、相关说明默认都是英文的。如果要默认显示为中文,则需要在 tauri.conf.json 中配置相应参数。 前言 默认情况下,在 windows 系统打完的 mis 包…...
深度丨Serverless + AIGC,一场围绕加速创新的升维布局
作者:褚杏娟 上图来源于基于函数计算部署 SD实现光影效果 前言: Serverless 在中国发展这些年,经历了高潮、低谷、现在重新回到大众视野。很多企业都非常感兴趣,部分企业开始大规模应用;也有一些企业对在生产环境真正…...
flask日志
您可以使用 Python 自带的 logging 模块来实现 Flask 日志记录功能。以下是一个简单的示例: import os import logging from logging.handlers import TimedRotatingFileHandler from flask import Flask, requestapp Flask(__name__)# 创建日志目录 if not os.pa…...
新能源汽车动力总成系统及技术
需要动力系统总成的请联:shbinzer 拆车邦 需要动力系统总成的请联:shbinzer 拆车邦 需要动力系统总成的请联:shbinzer 拆车邦 需要动力系统总成的请联:shbinzer 拆车邦 需要动力系统总成的请联:shbinzer …...
在 WSL2 中使用 NVIDIA Docker 进行全栈开发和深度学习 TensorFlow pytorch GPU 加速
在 WSL2 中使用 NVIDIA Docker 进行全栈开发和深度学习 TensorFlow pytorch GPU 加速 0. 背景 0.1 起源 生产环境都是在 k8d pod 中运行,直接在容器中开发不好嘛?每次换电脑,都要配配配,呸呸呸新电脑只安装日常用的软件不好嘛&…...
模拟实现应用层协议
模拟实现应用层协议 文章目录 模拟实现应用层协议应用层再谈协议 序列化和反序列化 网络版计算器自定义协议利用Json进行序列化和反序列化json库的安装条件编译 应用层 应用层(Application layer)是OSI模型的第七层。应用层直接和应用程序接口并提供常见…...
SAP-MM-冲销凭证布局变更
业务场景: 仓管员在冲销物料凭证时MBST,显示行很少,只有7行,提出需求调整布局为多行,但是MBST没有调整布局功能, 解决:点击“定制本地布局-选项-字体设置”调整字体大小 跟据需求调整字体&…...
Linux安装中文+MySQL的详细过程
中文安装1. 清理环境变量打开终端执行:sed -i /fcitx/d ~/.bashrcsed -i /GTK_IM_MODULE/d ~/.bashrcsed -i /QT_IM_MODULE/d ~/.bashrcsed -i /XMODIFIERS/d ~/.bashrc2. 重新配置 ibus 环境变量echo export GTK_IM_MODULEibus >> ~/.bashrcecho export QT_I…...
个人知识库构建:OpenClaw+千问3.5-27B自动整理碎片化笔记
个人知识库构建:OpenClaw千问3.5-27B自动整理碎片化笔记 1. 为什么需要智能知识管理 作为一个常年被信息过载困扰的技术写作者,我的笔记系统曾经像一座杂乱无章的仓库。微信收藏夹里躺着2000未读文章,Obsidian里有500多个零散笔记ÿ…...
从“动态规划”到“强化学习”:贝尔曼方程的前世今生与核心思想
从“动态规划”到“强化学习”:贝尔曼方程的前世今生与核心思想 1953年,美国数学家理查德贝尔曼在兰德公司研究导弹防御系统时,面对复杂的多阶段决策问题,提出了一个革命性的数学工具——动态规划。这个诞生于冷战背景下的理论&am…...
3层防护构建个人AI助手: Maid跨平台应用的隐私与体验革新
3层防护构建个人AI助手: Maid跨平台应用的隐私与体验革新 【免费下载链接】maid Maid is a free and open source application for interfacing with llama.cpp models locally, and with Anthropic, DeepSeek, Ollama, Mistral and OpenAI models remotely. 项目…...
LangGraph多智能体框架:构建持久化AI智能体的终极指南 [特殊字符]
LangGraph多智能体框架:构建持久化AI智能体的终极指南 🚀 【免费下载链接】langgraph Build resilient language agents as graphs. 项目地址: https://gitcode.com/GitHub_Trending/la/langgraph 在当今快速发展的AI领域,多智能体框架…...
VOOHU沃虎:从SFP到SFP28不同光模块如何选笼子?
在高速通信设备的设计中,SFP光模块笼子是一个看似简单却至关重要的组件。随着数据传输速率从1G演进到10G、25G乃至更高,光模块对笼子的要求也在发生质的变化。SFP(1G)、SFP(10G)、SFP28(25G&…...
如何3步掌握Home Assistant SSH Web终端:从零到精通的管理指南 ✨
如何3步掌握Home Assistant SSH Web终端:从零到精通的管理指南 ✨ 【免费下载链接】app-ssh Advanced SSH & Web Terminal - Home Assistant Community Apps 项目地址: https://gitcode.com/gh_mirrors/ad/app-ssh 在智能家居系统的日常维护中࿰…...
GIL移除≠自动线程安全!揭秘Python 3.13+中asyncio+shared_memory+numpy.ndarray三者交汇处的5个未公开竞态漏洞
第一章:Python无锁GIL环境下的并发安全本质重构当Python脱离CPython解释器的全局解释器锁(GIL)约束——例如在PyPy的STM模式、Jython、Cython多线程扩展,或新兴的Rust-Python绑定(如PyO3 async-std)中运行…...
论文AI率高怎么降最安全?2026保姆级降AIGC工作流:实测权威指令揭秘与3款工具横评
辛辛苦苦肝了三个月的论文,可是一经过学校的AI检测系统,却给我标了个醒目的65%!这我真是百口莫辩!明明每一个观点、每一处引用,都是我一点点阅读文献琢磨出来的! 为了把要命的 AI率 打下来,我之…...
新手入门服务器:用快马生成你的第一个xshell等效连接程序
作为一个刚接触服务器运维的新手,第一次使用xshell这类工具时,面对各种专业术语和复杂操作确实容易一头雾水。最近我发现用InsCode(快马)平台生成学习项目特别适合入门,今天就分享一下如何通过可运行的代码实例来理解SSH连接的核心概念。 理解…...
