Java连接Redis报错:NoSuchElementException: Unable to validate object的解决办法

 更新时间:2024年12月24日 11:44:08   作者:天黑请​闭眼  
这篇文章主要介绍了Java连接Redis报错:NoSuchElementException: Unable to validate object的解决办法,文中通过图文讲解的非常详细,具有一定的参考价值,需要的朋友可以参考下

前言

一个已经上线的项目,生产环境的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的配置文件,指向正确的目录(或者把指向程序代码的那项配置去掉,一般情况是不需要对程序代码的读取目录进行配置的)

以上就是Java连接Redis报错:NoSuchElementException: Unable to validate object的解决办法的详细内容,更多关于Java连接Redis报错Unable to validate object的资料请关注脚本之家其它相关文章!

相关文章

  • Java中int与Integer的区别详解及常见问题解决

    Java中int与Integer的区别详解及常见问题解决

    在Java编程语言中int和Integer虽然都用于表示数值,但它们之间存在着显著的区别,这篇文章主要介绍了Java中int与Integer的区别详解及常见问题的相关资料,需要的朋友可以参考下
    2025-07-07
  • 浅析Java NIO 直接缓冲区和非直接缓冲区

    浅析Java NIO 直接缓冲区和非直接缓冲区

    本篇文章主要为大家介绍了Java NIO 中直接缓冲区和非直接缓冲区的定义以及使用流程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-11-11
  • Java中两个List之间的比较方法(差集、交集和并集)

    Java中两个List之间的比较方法(差集、交集和并集)

    在业务的开发过程中会经常用到两个List集合相互取值的情况,下面这篇文章主要给大家介绍了关于Java中两个List之间的比较方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • 详解Spring 基于 Aspect 注解的增强实现

    详解Spring 基于 Aspect 注解的增强实现

    本篇文章主要介绍了详解Spring 基于 Aspect 注解的增强实现,非常具有实用价值,需要的朋友可以参考下
    2017-04-04
  • SpringBoot AOP+Redis实现延时双删功能的实战指南

    SpringBoot AOP+Redis实现延时双删功能的实战指南

    这篇文章主要为大家详细介绍了SpringBoot AOP如何结合Redis实现延时双删功能,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2025-07-07
  • spring jpa集成依赖的环境准备及实体类仓库编写教程

    spring jpa集成依赖的环境准备及实体类仓库编写教程

    这篇文章主要为大家介绍了spring jpa集成依赖的环境准备及实体类仓库编写教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-03-03
  • IDEA2019.2.2配置Maven3.6.2打开出现Unable to import Maven project

    IDEA2019.2.2配置Maven3.6.2打开出现Unable to import Maven project

    这篇文章主要介绍了IDEA2019.2.2配置Maven3.6.2打开出现Unable to import Maven project,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Netty分布式NioEventLoop优化selector源码解析

    Netty分布式NioEventLoop优化selector源码解析

    这篇文章主要介绍了Netty分布式NioEventLoop优化selector源码解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-03-03
  • JAVA集合框架专题

    JAVA集合框架专题

    这篇文章主要介绍了JAVA集合框架的相关知识,文中讲解非常细致,帮助大家更好的理解学习JAVA框架,感兴趣的朋友快来了解下
    2020-06-06
  • 浅谈java并发之计数器CountDownLatch

    浅谈java并发之计数器CountDownLatch

    CountDownLatch是通过一个计数器来实现的,当我们在new 一个CountDownLatch对象的时候需要带入该计数器值,该值就表示了线程的数量。下面我们来深入了解一下吧
    2019-06-06

最新评论