Переменная среды домашнего каталога Tomcat
В настоящее время я редактирую пути контекста server.xml и хочу вернуть контекстный путь к исходному каталогу webapps. Есть ли встроенная переменная среды tomcat, которая указывает на каталог установки tomcat, например TOMCAT_HOME или что-то в этом роде?
1 ответ
Как указано в комментариях, каталог установки Tomcat доступен как
${catalina.home}
свойство, а корневой каталог экземпляра Tomcat через
${catalina.base}
(см. документацию Tomcat ). Например, вы можете использовать
${catalina.home}/webapps/manager
для расположения приложения Tomcat Manager.
Однако я бы не стал определять контексты для Tomcat Manager и других приложений в: у них есть свои собственные определения контекста в
META-INF/context.xml
файл своей папки, поэтому их, вероятно, не следует переопределять в
server.xml
: таким образом вы можете потерять некоторые важные атрибуты конфигурации (например,
privileged="true"
для Tomcat Manager).
Лучшим решением было бы скопировать эти определения в
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>