1.场景描述
项目在本地跑的好好的,更新到服务器上就直接跑不起来了,上服务器查原因,有下面的日志。
2.故障现象
3.问题分析
异常原因倒是挺明显的,两个jar包共存,导致了堆栈溢出。
详细分析参考:https://blog.csdn.net/kxcfzyk/article/details/38613861
本地为什么可以跑?
查看本地的 Maven Dependencies 可以找到 log4j-over-slf4j.jar 和 slf4j-log4j12.jar,那这样不是也会造成异常吗?
再仔细观察发现,本地的 Maven Dependencies 中,上面两个包一个是编译到classpath下面了,另一个是没有的。
而服务器上的jar包,由于项目的特殊性,jar包是增量上传的,之前的jar包根本没有覆盖或者删除,而是增量。
4.解决方案
将项目中的pom文件的 slf4j-log4j12.jar 排除掉。