(如何)从$ CATALINA_ {HOME | BASE} / lib中的类访问/ WEB-INF / {lib | classes}中的jar

时间:2014-04-30 17:57:11

标签: java-ee tomcat classloader

让我们说我有一个属于A.jar的A级,其中A.jar在

  

$ CATALINA_HOME / lib中

  

$ CATALINA_BASE / lib中。

我有另一个B级,是B.jar的一部分,其中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中执行此操作?

1 个答案:

答案 0 :(得分:-1)

根据您发布的链接:

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

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

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