開發環境無錯,部署至測試環境報錯“NoSuchMethodError”OR"NoSuchClassError"


背景:

  實現一個簡單的功能,需要用到jedis的jar包連接Redis。在之前便已經有使用jedis,它的版本比較舊,是2.1的。而新實現的功能,在編碼的時候使用的是2.8的。在開發環境完成單元測試后,將編譯好的class文件拷貝更新至測試環境。因種種原因,導致功能無法運行,排查后,覺得可能是jedis版本問題。於是,將jedis的版本重新降為2.1。運行,開始報如題錯誤。

報錯:

       java.lang.NoSuchMethodError

    PS:報這個錯誤的方法或者類明明存在,但是系統就是報這個錯,百思不得其解。

 

解決方案:

     1、Jar包沖突問題,看看是不是Jar包版本不兼容。

      2、編譯問題。跟前一條有關系,即因為編譯時的jar包版本跟運行時的jar包版本不一致,從而導致報錯。(ps:我遇到的就是這個問題,當時弄昏頭腦了。)

      3、這個類或者方法的確不存在。

 

參考文獻:

  javaweb在生產環境中,某個方法確實存在,但是總是報java.lang.NoSuchMethodError錯誤

  使用Jedis:java.lang.NoSuchMethodError

 

  java.lang.NoSuchMethodError: java.lang.Long  

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM