我确实有一个Tomcat 7,我有一个运行的应用程序。在这个 tomcat 上,在 tomcat/lib 文件夹中,有一个 jarlog4j-over-slf4j.jar它被应用程序使用。
现在我正在尝试部署一个我没有编码或构建的 Web 应用程序(更准确地说是 Hawtio(,只需将该应用程序的战争放在 tomcat/webapp 文件夹中即可。但是,Hawtio 使用的是slf4j-log4j12.jar并且两个 jar 之间出现了委托循环冲突,并引发了异常,阻止了 Hawtio 启动。
我尝试从 tomcat/lib 文件夹中删除log4j-over-slf4j.jar并且可以工作,但我宁愿不这样做以避免任何回归。有没有办法从战争部署中排除存储在 tomcat/lib 文件夹中的 jar ?
更新您的 pom.xml以排除 slf4j 文件
查看您的 Maven 依赖项,看看哪些依赖项使用 SLF4J,并且可能将其包含在 WAR 文件中。 然后将其添加到其中的每一个
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
如果特定依赖项没有任何其他排除项,则需要将上述内容包装在一起。