我的servlet应用程序包含许多库.jars,其中一些包含嵌入的log4j.xml或log4j.properties文件.我想确保log4j首先找到我的log4j.xml!我已经尝试在servlet中搜索各种类路径元素的优先级的一些规范(例如,WEB-INF/classes总是在WEB-INF/lib之前吗?),或者某种方式来配置或调整servlet的类加载器,以便给定的资源目录出现在类路径的早期.到目前为止,我已经画了一个空白.有关确保servlet .war文件通过类加载器加载正确的log4j.xml的任何建议吗?
Ditto Tomcat 8.0.
请参阅文档:Class Loader HOW-TO.
Tomcat 8.0答案很简单,取自Tomcat文档页面,Class Loader HOW-TO.特别注意/WEB-INF/
目录/文件夹的使用.
雄猫6因此,从Web应用程序的角度来看,类或资源加载按以下顺序查找以下存储库:
JVM的Bootstrap类
/WEB-INF/classes
您的Web应用程序
/WEB-INF/lib/*.jar
您的Web应用程序系统类加载器类(如上所述)
常见的类加载器类(如上所述)
如果配置了Web应用程序类加载器,
则订单变为:
JVM的Bootstrap类
系统类加载器类(如上所述)
常见的类加载器类(如上所述)
/WEB-INF/classes
您的Web应用程序
/WEB-INF/lib/*.jar
您的Web应用程序
摘自Tomcat 6页,Class Loader HOW-TO.
因此,从Web应用程序的角度来看,类或资源加载按以下顺序查找以下存储库:
JVM的Bootstrap类
系统类加载器类(如上所述)
/WEB-INF/classes
您的Web应用程序
/WEB-INF/lib/*.jar
您的Web应用程序
$CATALINA_HOME/lib
$CATALINA_HOME/lib/*.jar