当前位置: 首页 > article >正文

Java:链接redis报错:NoSuchElementException: Unable to validate object

目录

    • 前言
    • 报错信息
    • 排查
      • 1、确认redis密码设置是否有效
      • 2、确认程序配置文件,是否配置了正确的redis登录密码
      • 3、检测是否是redis持久化的问题
      • 4、确认程序读取到的redis密码没有乱码
    • 原因
    • 解决


前言

一个已经上线的项目,生产环境的redis居然没有设置密码,后来因为漏洞扫描的时候发现了该问题,需要给redis加上密码,在密码加上之后,原本可以正常运行的程序在连接redis的时候出现报错


报错信息

redis.clients.jedis.exceptions.JedisException: Could not get a resource from the pool
	at redis.clients.util.Pool.getResource(Pool.java:51)
	at redis.clients.jedis.JedisPool.getResource(JedisPool.java:226)
	at com.xxx.util.JedisUtils.getJedis(JedisUtils.java:85)
	at com.xxx.itr.thread.JedisConsumeThread.run(JedisConsumeThread.java:76)
Caused by: java.util.NoSuchElementException: Unable to validate object
	at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:506)
	at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:363)
	at redis.clients.util.Pool.getResource(Pool.java:49)
	... 3 more

排查

1、确认redis密码设置是否有效

在服务器连接redis,并使用auth命令输入登录密码,成功登录


2、确认程序配置文件,是否配置了正确的redis登录密码

redis密码与实际设置的密码一致


3、检测是否是redis持久化的问题

在服务器连接redis,执行ping命令,结果为:pong,排查持久化的问题

在这里插入图片描述


4、确认程序读取到的redis密码没有乱码

在程序上添加日志打印,将读取到的redis密码打印到日志文件

新加的日志并没有出现在日志文件!!!

再次确认,已将添加过日志打印的class文件更新到了tomcat/webapps目录下所对应的程序上,但日志还是没有成功打印出来!!!

出现以上情况,说明当前tomcat运行的并不是tomcat/webapps下的代码

检查tomcat配置,发现以下配置

在这里插入图片描述


原因

因配置原因,导致tomcat实际的运行代码并不在当前tomcat的webapps目录下,而且指向了其他的tomcat

因为redis设置了密码,而在当前tomcat程序的配置文件调整redis的密码实际上是没有成功读取到的

redis连接时需要密码,但程序启动时却没有带上密码,导致报错


解决

调整tomcat的配置文件,指向正确的目录(或者把指向程序代码的那项配置去掉,一般情况是不需要对程序代码的读取目录进行配置的)


http://www.kler.cn/a/443416.html

相关文章:

  • 比较procfs 、 sysctl和Netlink
  • 【设计模式-2】23 种设计模式的分类和功能
  • Python创建GitHub标签的Django管理命令
  • C++语言的并发编程
  • vue3运行时执行过程步骤
  • 汽车信息安全 -- S32K1如何更新BOOT_MAC
  • SSM 赋能 Vue 助力:新锐台球厅管理系统的设计与实现的辉煌之路
  • 模型 六西格玛(质量管理)
  • 嵌入式单片机中对应GPIO外设详解实现
  • 图书馆管理系统(三)基于jquery、ajax
  • TypeScript 错误处理与调试
  • 计算机毕业设计论文指导
  • 游戏何如防抓包
  • (8)YOLOv6算法基本原理
  • Unity中的委托和事件(UnityAction、UnityEvent)
  • 动态规划-part1
  • SSM 架构下 Vue 电脑测评系统:为电脑性能评估赋能
  • Spring Boot 配置Kafka
  • clearvoice 语音降噪、语音分离库
  • 初学stm32 --- 时钟配置
  • SQL进阶技巧:如何计算先进先出的收支平衡问题?
  • Firewalld 防火墙全面解析与配置指南
  • Hadoop yarn安装
  • Java设计模式及示例
  • LeetCode:3376. 破解锁的最少时间 I(DFS回溯 Java)
  • uboot 打开log 的 方法