Переменная среды домашнего каталога 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>
Другие вопросы по тегам