【问题标题】:(How to) access a jar in /WEB-INF/{lib|classes} from a class in $CATALINA_{HOME|BASE}/lib(如何)从 $CATALINA_{HOME|BASE}/lib 中的类访问 /WEB-INF/{lib|classes} 中的 jar
【发布时间】:2014-04-30 17:57:10
【问题描述】:

假设我有一个类 A,它是 A.jar 的一部分,而 A.jar 在

$CATALINA_HOME/lib

$CATALINA_BASE/lib.

我有另一个属于 B.jar 的 B 类,B.jar 就在其中

/WEB-INF/lib

/WEB-INF/类

A 引用了 B。

根据how class loading works in tomcat,A 应该无法看到 B,因为 /WEB-INF/lib 中的所有内容只能由部署到 WEB-INF 本身的 Web 应用程序访问。实际上,在 Tomcat 7.0.41 上尝试此操作时,这不起作用,即 A 找不到 B 类。

但是,假设我确实希望 A 能够引用 B,(如何)我可以在 Tomcat 7.x 中做到这一点?

【问题讨论】:

    标签: jakarta-ee tomcat classloader


    【解决方案1】:

    根据您发布的链接:

    通常,不应将应用程序类放在此处。此类加载器搜索的位置由 $CATALINA_BASE/conf/catalina.properties 中的 common.loader 属性定义。默认设置将按照列出的顺序搜索以下位置:

    1. $CATALINA_BASE/lib 中的解压类和资源
    2. $CATALINA_BASE/lib 中的 JAR 文件
    3. $CATALINA_HOME/lib 中的解压类和资源
    4. $CATALINA_HOME/lib 中的 JAR 文件

    因此,除非您对 catalina.properties 文件进行更改,否则我看不到您在 A.jar 中的类如何找到 B.jar。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-11
      • 2012-01-11
      • 1970-01-01
      • 2021-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-29
      相关资源
      最近更新 更多