我目前正在编辑 server.xml 上下文路径,并希望有一个返回原始 webapps 目录的上下文路径。是否有内置的 tomcat 环境变量指向像 TOMCAT_HOME 之类的 tomcat 安装目录?
答案 0 :(得分:1)
正如评论中所指出的,Tomcat 安装目录作为 ${catalina.home}
属性提供,而 Tomcat 实例根目录通过 ${catalina.base}
(参见 Tomcat documentation)。例如。您可以使用 ${catalina.home}/webapps/manager
作为 Tomcat Manager 应用程序的位置。
但是我不会在 server.xml
中定义 Tomcat Manager 和其他应用程序的上下文:它们在其文件夹的 META-INF/context.xml
文件中有自己的上下文定义,因此它们可能不应该在server.xml
:通过这种方式,您可以丢失一些重要的配置属性(例如 Tomcat 管理器的 privileged="true"
)。
更好的解决方案是将这些定义复制到 conf/Catalina/localhost/<appname>.xml
并添加 docBase="${catalina.home}/webapps/<appname>
属性。例如。对于 Tomcat Manager,您应该创建一个名为 conf/Catalina/localhost/manager.xml
的文件,内容为:
<Context docBase="${catalina.home}/webapps/manager" antiResourceLocking="false" privileged="true" >
<CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
sameSiteCookies="strict" />
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>