Java 如何将目录添加到特定Tomcat7上下文的类路径中?

Java 如何将目录添加到特定Tomcat7上下文的类路径中?,java,servlets,tomcat7,classpath,Java,Servlets,Tomcat7,Classpath,如何将目录添加到指定给特定上下文的目录中 我希望我的Java Servlet应用程序从类路径中的目录加载WAR文件外部的属性文件,该目录仅对该Servlet可见。例如,主机localhost上的servlet上下文/appA应加载/etc/appA/application.properties(Linux)或D:\configuration\appA\application.properties(Windows),而同一主机上的servlet上下文/appB不应具有/etc/appA(Linux

如何将目录添加到指定给特定上下文的目录中


我希望我的Java Servlet应用程序从类路径中的目录加载WAR文件外部的属性文件,该目录仅对该Servlet可见。例如,主机
localhost
上的servlet上下文
/appA
应加载
/etc/appA/application.properties
(Linux)或
D:\configuration\appA\application.properties
(Windows),而同一主机上的servlet上下文
/appB
不应具有
/etc/appA
(Linux)或者
D:\configuration\appA\
在其类路径中。

如果要为所有WebApp添加路径:

将目录路径名
/etc/appA
添加到
/conf/catalina.properties
文件的common.loader属性中


如果要将路径添加到一个特定的Web应用程序:

在文件
$CATALINA_BASE/conf/CATALINA/localhost/appA.xml
中的元素
内部,将元素
与类
VirtualWebappLoader一起使用:

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/appA">
    <Loader className="org.apache.catalina.loader.VirtualWebappLoader"
              virtualClasspath="/etc/appA"/>
</Context>

参考文献:


该路径不会出现在所有上下文的类路径上吗?我希望路径对特定上下文可见,并且仅对该上下文可见。您的答案是正确的,除了
之外,定义应该出现在
$CATALINA_BASE/conf/CATALINA/localhost/appA.xml
中应用程序WAR文件之外的文件中,以便在使用同一WAR文件时,不同操作系统的路径名前缀格式可能不同。修改了答案以指定文件
$CATALINA_BASE/conf/CATALINA/localhost/appA.xml
。我认为作为复制品比复制品更好。