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

Jakarta ee (如何)从$CATALINA|u{HOME | BASE}/lib中的类访问/WEB-INF/{lib | classes}中的jar,jakarta-ee,tomcat,classloader,Jakarta Ee,Tomcat,Classloader,假设我有一个类a,它是a.jar的一部分,a.jar在其中 $CATALINA_HOME/lib 或 $CATALINA_基地/lib 我有另一个类B,它是B.jar的一部分,B.jar在其中 /WEB-INF/lib 或 /WEB-INF/课程 A指的是B 根据本文,A不可能看到B,因为/WEB-INF/lib中的所有内容都只能由部署到WEB-INF本身的WEB应用程序访问。事实上,在使用Tomcat 7.0.41进行测试时,这是行不通的,即A找不到B类 但是,让我们假设我确实希望A能够引用B

假设我有一个类a,它是a.jar的一部分,a.jar在其中

$CATALINA_HOME/lib

$CATALINA_基地/lib

我有另一个类B,它是B.jar的一部分,B.jar在其中

/WEB-INF/lib

/WEB-INF/课程

A指的是B

根据本文,A不可能看到B,因为/WEB-INF/lib中的所有内容都只能由部署到WEB-INF本身的WEB应用程序访问。事实上,在使用Tomcat 7.0.41进行测试时,这是行不通的,即A找不到B类


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

根据您发布的链接:

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

用$CATALINA_BASE/lib解压类和资源 $CATALINA_BASE/lib中的JAR文件 在$CATALINA_HOME/lib中解压类和资源 $CATALINA_HOME/lib中的JAR文件 因此,除非您对catalina.properties文件进行了更改,否则我不知道您在A.jar中的类如何找到B.jar