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 图解Spring启动时的后置处理器工作流程是怎样的
spring的后置处理器有两类,bean后置处理器,bf(BeanFactory)后置处理器。bean后置处理器作用于bean的生命周期,bf的后置处理器作用于bean工厂的生命周期2021-10-10javax.validation.constraints注解使用
这篇文章主要介绍了javax.validation.constraints注解使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-07-07springboot+vue前后端分离项目中使用jwt实现登录认证
本文介绍了如何在SpringBoot+Vue前后端分离的项目中使用JWT实现登录认证,内容包括后端的响应工具类、JWT工具类、登录用户实体类、登录接口、测试接口、过滤器、启动类以及前端的登录页面实现,感兴趣的可以了解一下2024-10-10Mybatis的mapper标签 namespace属性用法说明
这篇文章主要介绍了Mybatis的mapper标签 namespace属性用法说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-09-09Spring Boot自定义 Starter并推送到远端公服的详细代码
这篇文章主要介绍了Spring Boot自定义 Starter并推送到远端公服,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-09-09
最新评论