Tomcat 8中的类路径和jar文件加载顺序

Tomcat 8中的类路径和jar文件加载顺序

有没有人知道在哪个地方指定顺序,在tomcat8中装入jars中的哪些类?

这是我们的场景:我们有两个完全相同的服务器(硬件和操作系统)。两者都在运行java 1.7.65,并且都安装了版本8.0.32的tomcat。启动参数和VM参数以及特定于应用程序的设置完全相同(第二台机器只是一个冗余系统)。唯一的区别是ip地址,当然还有主机名。

在最近从Tomcat7升级到Tomcat8 (在两个系统上)之后,很长一段时间都忽略了来自slf4j的消息“找到多个绑定...”在应用程序启动时,我们遇到了另一种情况,它导致了一个错误,使我们的应用程序无法正确地记录日志--类加载的排序/排序。这是因为一个系统先加载logback-classic-1.0.13.jar,然后在第二个系统slf4j-log4j12-1.6.6.jar上先加载。我们只部署了一个logback.xml,没有部署log4j.xml,因此日志消息不会出现在正确的文件中,因为加载的StaticLoggerBinder不是正确的。

system-1的输出

代码语言:javascript复制SLF4J: Class path contains multiple SLF4J bindings.

SLF4J: Found binding in [jar:file:/opt/backoffice/apache-tomcat-8.0.32/webapps/backoffice/WEB-INF/lib/logback-classic-1.0.13.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: Found binding in [jar:file:/opt/backoffice/apache-tomcat-8.0.32/webapps/backoffice/WEB-INF/lib/slf4j-log4j12-1.6.6.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.

16:50:26,740 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]

16:50:26,740 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]

16:50:26,741 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [file:/opt/backoffice/apache-tomcat-8.0.32/webapps/backoffice/WEB-INF/classes/logback.xml]system-2的输出

代码语言:javascript复制SLF4J: Class path contains multiple SLF4J bindings.

SLF4J: Found binding in [jar:file:/home/backoffice/apache-tomcat-8.0.32/webapps/backoffice/WEB-INF/lib/slf4j-log4j12-1.6.6.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: Found binding in [jar:file:/home/backoffice/apache-tomcat-8.0.32/webapps/backoffice/WEB-INF/lib/logback-classic-1.0.13.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.

SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]

log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).(是的,我知道如何通过maven依赖来修复它,我肯定会从我的pom中删除重复/冗余的依赖...O:-) )

现在我的问题是,在两个完全相同的系统上,顺序怎么可能不同?

相关推荐

世俱杯16强出炉!两大死亡半区:皇马PK尤文 梅西对阵大巴黎
逆战变异模式详解:英雄技能与多样变异体大揭秘
beat365app下载官网

逆战变异模式详解:英雄技能与多样变异体大揭秘

📅 10-13 👁️ 286
最详细的Cydia使用教程------完全版。新补充Cydia1.1.1离线安装(升级)方法。
C语言常用库函数大全
365bet赌城

C语言常用库函数大全

📅 07-10 👁️ 4594
开发APP需要哪些知识?
beat365app下载官网

开发APP需要哪些知识?

📅 08-29 👁️ 8479
火狐浏览器怎么设置自动刷新页面-火狐浏览器自动刷新的方法