问题解决:java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log
问题场景
tomcat项目启动之后,报错,报错提示如下:
java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)
本文主要是针对此种情况进行阐述说明。
问题环境
| 软件 | 版本 |
|---|---|
| tomcat | 7 |
问题原因
一般这种情况,都是因为版本冲突。因为博主是使用IDEA的,所以全局搜索了 org.slf4j.spi.LocationAwareLogger,搜索结果如下:

从搜索结果可以知道,是存在有两个lib包的。我们点击进去查看具体的文件内容,其中1.7.2的内容如下:

而1.5.0的内容如下:

从报错提示中,我们可以知道方法参数是有5个参数的,而1.7.2版本里面是有6个参数的。所以,就是项目运行过程,先加载了1.7.2的代码,导致其他调用1.5.0版本的代码出错。
解决方案
移除slf4j-api-1.7.2.jar即可。
结果
程序运行正常。
总结
NoSuchMethodError除了是缺包之外,还可能是版本冲突。逐步进行分析,最后一般都可以顺利解决问题的。
随缘求赞
如果我的文章对大家产生了帮忙,可以在文章底部点个赞或者收藏;
如果有好的讨论,可以留言;
如果想继续查看我以后的文章,可以点击关注
可以扫描以下二维码,关注我的公众号:枫夜之求索阁,查看我最新的分享!


浙公网安备 33010602011771号