Определение параметров контекста сервлета Tomcat

StackOverflow https://stackoverflow.com/questions/1626018

  •  06-07-2019
  •  | 
  •  

Вопрос

Сценарий:

файл foo.war содержит значение параметра инициализации по умолчанию fooParam=1.

Это определено в foo.war!WEB_INF/web.xml который содержит:

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app 
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
    "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

    <context-param>
      <param-name>fooParam</param-name>
      <param-value>1</param-value>
      <description>
        my parameter "fooParam"
      </description>
    </context-param>

    ...

Хорошо, теперь я хочу иметь возможность переопределить его в конфигурационном файле в каталоге Tomcat {$CATALINA_HOME}/conf/.Где / как я могу это сделать???

Это было полезно?

Решение

В соответствии с документацией Контекст элемент:

Контекстные Параметры

Вы можете настроить именованные значения, которые будут сделаны видимыми для Интернета приложение как контекст сервлета параметры инициализации путем вложения <Parameter> элементы внутри этого элемент.Например, вы можете создать параметр инициализации, подобный этому:

<Context ...>
  ...
  <Parameter name="companyName" value="My Company, Incorporated"
         override="false"/>
  ...
</Context>

Это эквивалентно включению следующего элемента в веб дескриптор развертывания приложения (/WEB-INF/web.xml):

<context-param>
  <param-name>companyName</param-name>
  <param-value>My Company, Incorporated</param-value>
</context-param>

но не требует модификации дескриптора развертывания для настройки этого значения.

Допустимые атрибуты для <Parameter> элементы заключаются в следующем:

...

О том , что override атрибут a <Parameter>, в документации говорится:

Установите это значение на false если вы не хотите, чтобы <context-param> для того же имени параметра, найденного в дескрипторе развертывания веб-приложения, переопределить указанное здесь значение.По умолчанию переопределения разрешены.

Установка для него значения false должна сработать.Это была часть "как".


Что касается части "где", прочитайте "обратитесь к введению Контекстный контейнер:

Для Tomcat 6, в отличие от Tomcat 4.x, НЕ рекомендуется размещать <Context> элементы непосредственно в server.xml файл. Это происходит потому, что это делает изменение конфигурации контекста более инвазивным, поскольку основной conf/server.xml файл не может быть перезагружен без перезапуска Tomcat.

Контекст элементы могут быть явно определены:

  • В $CATALINA_BASE/conf/context.xml файл:информация об элементе контекста будет загружена всеми веб-приложениями.
  • В $CATALINA_BASE/conf/[enginename]/[hostname]/context.xml.default файл:информация об элементе контекста будет загружена всеми веб-приложениями этого хоста.
  • В отдельных файлах (с расширением ".xml") в $CATALINA_BASE/conf/[enginename]/[hostname]/ справочник.В качестве контекстного пути будет использоваться имя файла (за вычетом расширения .xml).Многоуровневые контекстные пути могут быть определены с помощью #, например foo#bar.xml для контекстного пути из /foo/bar.Веб-приложение по умолчанию может быть определено с помощью файла с именем ROOT.xml.
  • Только в том случае, если контекстный файл не существует для приложения в $CATALINA_BASE/conf/[enginename]/[hostname]/, в отдельном файле по адресу /META-INF/context.xml внутри файлов приложения.Если веб-приложение упаковано как WAR, то /META-INF/context.xml будут скопированы в $CATALINA_BASE/conf/[enginename]/[hostname]/ и переименован в соответствии с контекстным путем приложения.Как только этот файл будет существовать, он не будет заменен, если начнется новая ВОЙНА с более новым /META-INF/context.xml размещается в базе приложений хоста.
  • Внутри основного элемента в главном conf/server.xml.

За исключением server.xml, файлы , которые определяют Контекст элементы могут определять только один Контекст элемент.

Другие советы

Аргх!Мне казалось, я уже спрашивал об этом раньше.Иногда действительно трудно осуществлять поиск на этом сайте.

где / как настроить ресурсы конфигурации для Tomcat .файлы войны

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top