如果部署后發(fā)現(xiàn)jetty啟動(dòng)失敗入热,而且通過error日志觀察到系統(tǒng)出現(xiàn)了NoSuchMethodError 很有可能是系統(tǒng)中出現(xiàn)了依賴沖突。解決依賴沖突可按如下步驟
1晓铆、查看jetty啟動(dòng)日志(/opt/meituan/jetty-distribution-9.2.0.v20140526/jetty.log
)確定最內(nèi)層的報(bào)錯(cuò)信息
image
發(fā)現(xiàn)是
LogManager
這個(gè)類中缺少getLoggerRepository
方法勺良,因?yàn)轭惷c文件名相同,所以可以在工程中搜索類名
2尤蒿、可以看到在如下右側(cè)紅框中這些maven引入的jar包里都有這個(gè)類郑气,而我們要關(guān)注的是左側(cè)紅框中的包名為org.apache.log4j
(根據(jù)步驟1的報(bào)錯(cuò))中的這兩個(gè)LogManager
類
image
3、分別打開這兩個(gè)LogManager
文件腰池,查看哪個(gè)依賴中沒有getLoggerRepository()
方法尾组,就說明是該依賴的引入導(dǎo)致沖突
4、打開pom文件的Dependency Analyzer試圖示弓,找到問題依賴讳侨,然后點(diǎn)擊右鍵Exclude掉就行了
image