Java連接Redis報錯:NoSuchElementException: Unable to validate object的解決辦法
前言
一個已經(jīng)上線的項目,生產(chǎn)環(huán)境的redis居然沒有設(shè)置密碼,后來因為漏洞掃描的時候發(fā)現(xiàn)了該問題,需要給redis加上密碼,在密碼加上之后,原本可以正常運行的程序在連接redis的時候出現(xiàn)報錯
報錯信息
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、確認(rèn)redis密碼設(shè)置是否有效
在服務(wù)器連接redis,并使用auth命令輸入登錄密碼,成功登錄
2、確認(rèn)程序配置文件,是否配置了正確的redis登錄密碼
redis密碼與實際設(shè)置的密碼一致
3、檢測是否是redis持久化的問題
在服務(wù)器連接redis,執(zhí)行ping命令,結(jié)果為:pong,排查持久化的問題

4、確認(rèn)程序讀取到的redis密碼沒有亂碼
在程序上添加日志打印,將讀取到的redis密碼打印到日志文件
新加的日志并沒有出現(xiàn)在日志文件?。?!
再次確認(rèn),已將添加過日志打印的class文件更新到了tomcat/webapps目錄下所對應(yīng)的程序上,但日志還是沒有成功打印出來?。?!
出現(xiàn)以上情況,說明當(dāng)前tomcat運行的并不是tomcat/webapps下的代碼
檢查tomcat配置,發(fā)現(xiàn)以下配置

原因
因配置原因,導(dǎo)致tomcat實際的運行代碼并不在當(dāng)前tomcat的webapps目錄下,而且指向了其他的tomcat
因為redis設(shè)置了密碼,而在當(dāng)前tomcat程序的配置文件調(diào)整redis的密碼實際上是沒有成功讀取到的
redis連接時需要密碼,但程序啟動時卻沒有帶上密碼,導(dǎo)致報錯
解決
調(diào)整tomcat的配置文件,指向正確的目錄(或者把指向程序代碼的那項配置去掉,一般情況是不需要對程序代碼的讀取目錄進(jìn)行配置的)
以上就是Java連接Redis報錯:NoSuchElementException: Unable to validate object的解決辦法的詳細(xì)內(nèi)容,更多關(guān)于Java連接Redis報錯Unable to validate object的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java中int與Integer的區(qū)別詳解及常見問題解決
在Java編程語言中int和Integer雖然都用于表示數(shù)值,但它們之間存在著顯著的區(qū)別,這篇文章主要介紹了Java中int與Integer的區(qū)別詳解及常見問題的相關(guān)資料,需要的朋友可以參考下2025-07-07
淺析Java?NIO?直接緩沖區(qū)和非直接緩沖區(qū)
本篇文章主要為大家介紹了Java?NIO?中直接緩沖區(qū)和非直接緩沖區(qū)的定義以及使用流程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-11-11
詳解Spring 基于 Aspect 注解的增強實現(xiàn)
本篇文章主要介紹了詳解Spring 基于 Aspect 注解的增強實現(xiàn),非常具有實用價值,需要的朋友可以參考下2017-04-04
SpringBoot?AOP+Redis實現(xiàn)延時雙刪功能的實戰(zhàn)指南
這篇文章主要為大家詳細(xì)介紹了SpringBoot?AOP如何結(jié)合Redis實現(xiàn)延時雙刪功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2025-07-07
spring?jpa集成依賴的環(huán)境準(zhǔn)備及實體類倉庫編寫教程
這篇文章主要為大家介紹了spring?jpa集成依賴的環(huán)境準(zhǔn)備及實體類倉庫編寫教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03
IDEA2019.2.2配置Maven3.6.2打開出現(xiàn)Unable to import Maven project
這篇文章主要介紹了IDEA2019.2.2配置Maven3.6.2打開出現(xiàn)Unable to import Maven project,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
Netty分布式NioEventLoop優(yōu)化selector源碼解析
這篇文章主要介紹了Netty分布式NioEventLoop優(yōu)化selector源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03
淺談java并發(fā)之計數(shù)器CountDownLatch
CountDownLatch是通過一個計數(shù)器來實現(xiàn)的,當(dāng)我們在new 一個CountDownLatch對象的時候需要帶入該計數(shù)器值,該值就表示了線程的數(shù)量。下面我們來深入了解一下吧2019-06-06

