一尘不染

在servlet中控制类路径

tomcat

我的Servlet应用程序包括许多库.jar,其中一些包含嵌入式log4j.xml或log4j.properties文件。我想确保log4j首先找到我的log4j.xml!我尝试搜索servlet中各种类路径元素的优先级的某些规范(例如,WEB-
INF / class是否始终在WEB-INF /
lib之前?),或以某种方式配置或调整servlet的类加载器,以便给定的资源目录出现在类路径的早期。到目前为止,我已经画了一个空白。关于确保servlet
.war文件通过类加载器加载正确的log4j.xml的任何建议?


阅读 249

收藏
2020-06-16

共1个答案

一尘不染

据我了解,从类路径中选择资源是不确定的(从应用程序开发人员的角度来看)。即使始终加载同一文件,该行为也可能会更改:1.升级当前容器的版本时。2.如果您切换容器。

最简单的解决方案是 从库jar中删除嵌入式log4j配置文件 。嵌入log4j config几乎不是一个好主意,因为它会导致您在这里看到的问题…

它们是第三方罐还是您开发的罐?

2020-06-16