出現(xiàn)java.lang.NoSuchMethodException異常的解決(靠譜)
java.lang.NoSuchMethodException異常解決
首先,這個錯誤必然是運行期間的,網(wǎng)上說了一堆,檢查類有沒有這個方法,我覺得都是廢話,沒有這個方法,能通過編譯?
下面我分享一個我項目運行報錯java.lang.NoSuchMethodException情景
- 第一,我保證自己項目絕對有這個類和這個方法。且有一個?
- 第二,其他什么形參也都正確,從服務(wù)器拿包下來,反編譯class文件也都沒問題。阿,這。。。。。
反復(fù)打包反復(fù)發(fā)布到生產(chǎn)都不行,但是奇葩的是,測試環(huán)境并沒有報錯。
于是玄學(xué)了一天,本來完全肯定是有同包同名的另一個class類存在,而這個類沒有我要得方法。折騰了大半天,失去了信心。
有一個前提
我們本地jar包啟動springboot都沒有這個錯誤。都是打包到外部容器,war包運行就會出現(xiàn)這個錯誤。
終于
idea全局搜索了意外看到了All Places,發(fā)現(xiàn)maven引的一個jar包也存在同包同名的另一個class,坑人啊。
沒有選All Places,只能找到項目工程下的,并不能找到j(luò)ar包里面的內(nèi)容。

找到這個同包同名的class文件之后,刪除也好,maven排除依賴也好,都可以,按實際情況來定。
總結(jié)
存在同包同名的class文件,方法不一致,由于jvm的類加載機制,可能會加載另一個不是我們想要的class。
所以在運行的時候報錯java.lang.NoSuchMethodException.
最后:
請仔細檢查類沖突!??!
請仔細檢查類沖突?。。?/strong>
請仔細檢查類沖突?。?!
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SPRING FRAMEWORK BEAN作用域和生命周期原理解析
這篇文章主要介紹了SPRING FRAMEWORK BEAN作用域和生命周期原理解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-01-01
教你使用IDEA搭建spring源碼閱讀環(huán)境的詳細步驟
這篇文章主要介紹了使用IDEA搭建spring源碼閱讀環(huán)境的詳細步驟,本文分兩步通過實例圖文相結(jié)合給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2021-08-08

