【问题标题】:Tomcat 6 vs 7 - lib vs shared/lib - jars only?Tomcat 6 vs 7 - lib vs shared/lib - 仅限jar?
【发布时间】:2013-06-24 10:07:10
【问题描述】:

从 Tomcat 6 升级到 Tomcat 7 时 - 我们在 6 上的 $CATALINA_HOME/lib 目录中的类路径中保留了一些我们想要的文件 - 在 Tomcat 7 上移动这两个 $CATALINA_HOME/shared/lib 是有意义的.

我们发现 jar 文件正常 - 但任何不是 jar 文件的东西 - 例如 xml 文件等都没有被加载到 shared/lib 目录中的类拾取。当我们将非 jar 文件移回 $CATALINA_HOME/lib 目录时,它们会毫无问题地加载到类路径中。

我的问题是 - 这是 Tomcat 7 中类加载器中的错误吗?还是这是预期的行为?(未能以与从 $CATALINA_HOME/lib 加载文件的方式不一致的方式将非 jar 文件从 $CATALINA_HOME/shared/lib 加载到类路径中)

操作系统:Windows7

Tomcat 版本:7.0.30

Java 版本:1.7.0_11

【问题讨论】:

标签: java tomcat classpath tomcat7 classloader


【解决方案1】:

我不使用共享库,但根据此文档: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 Doco 中推断出相同的问题。我的问题是这是否是预期的行为 - 或者只是其他事情的结果。
  • 其实catalina.properties中的cmets提到你必须指定一个路径值用于加载类,另一个路径用于加载jar:shared.loader="${catalina.base}/shared/lib","${catalina.base}/shared/lib/*.jar","${catalina.home}/shared/lib","${catalina.home}/shared/lib/*.jar"。更多讨论请参见my Answer
猜你喜欢
  • 1970-01-01
  • 2010-11-29
  • 2015-09-17
  • 1970-01-01
  • 1970-01-01
  • 2012-01-11
  • 2016-02-06
  • 2011-01-17
  • 2012-01-24
相关资源
最近更新 更多