Tomcat 6与7 - lib与shared/lib - 只使用Jars?

5
当我们将Tomcat 6升级到Tomcat 7时,我们保留了一些需要在类路径中的文件,并将它们从Tomcat 6的$CATALINA_HOME/lib目录移动到Tomcat 7的$CATALINA_HOME/shared/lib目录,看起来很合理。
然而,我们发现JAR文件已成功转移,但不是JAR文件(例如XML文件等)没有被共享/lib目录中的类加载器加载。当我们将这些非JAR文件移回$CATALINA_HOME/lib目录时,它们可以轻松地加载到类路径中。
我的问题是:这是Tomcat 7中类加载器的一个bug吗?还是这是预期行为?(从$CATALINA_HOME/shared/lib加载非JAR文件到类路径的方法与从$CATALINA_HOME/lib加载文件的方法不一致)
操作系统:Windows7
Tomcat版本:7.0.30
Java版本:1.7.0_11

1个回答

5

我不使用共享库,但是根据这份文档:http://wiki.apache.org/tomcat/HowTo

请注意,Tomcat 6.0.14版本中$CATALINA_HOME/shared/lib目录不存在。

你需要添加此目录,并编辑$CATALINA_HOME/conf/catalina.properties文件,使其shared.loader行看起来像这样:shared.loader=$CATALINA_HOME/shared/lib。


感谢@Darius X. - 那个链接段落提供了足够的信息,你几乎可以从Tomcat文档中推断出相同的问题。我的问题是这是否是预期行为 - 还是其他事情的结果。 - hawkeye
1
实际上,在 catalina.properties 中的注释中提到,您必须为加载类指定一个路径值,为加载 jar 文件指定另一个路径值:shared.loader="${catalina.base}/shared/lib","${catalina.base}/shared/lib/*.jar","${catalina.home}/shared/lib","${catalina.home}/shared/lib/*.jar"。更多讨论请参见我的回答 - Basil Bourque

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接