如果部署后发现jetty启动失败,而且通过error日志观察到系统出现了NoSuchMethodError 很有可能是系统中出现了依赖冲突。解决依赖冲突可按如下步骤
1、查看jetty启动日志(/opt/meituan/jetty-distribution-9.2.0.v20140526/jetty.log
)确定最内层的报错信息
发现是
LogManager
这个类中缺少getLoggerRepository
方法,因为类名与文件名相同,所以可以在工程中搜索类名
2、可以看到在如下右侧红框中这些maven引入的jar包里都有这个类,而我们要关注的是左侧红框中的包名为org.apache.log4j
(根据步骤1的报错)中的这两个LogManager
类
3、分别打开这两个LogManager
文件,查看哪个依赖中没有getLoggerRepository()
方法,就说明是该依赖的引入导致冲突
4、打开pom文件的Dependency Analyzer试图,找到问题依赖,然后点击右键Exclude掉就行了
image
网友评论