Свойства системы для каждого приложения в Apache Tomcat - PullRequest
4 голосов
/ 08 марта 2011

Моя текущая потребность - указать различные свойства log4j.configuration для разных веб-приложений, развернутых на одном и том же экземпляре Tomcat.

Возможно ли в Tomcat указать системные свойства для каждого приложения?

1 Ответ

1 голос
/ 11 января 2015

Вы задаете два отдельных вопроса (ну, по крайней мере, для Tomcat 7 вы задаете два отдельных вопроса).

Log4j2 поддерживает веб-приложение, поэтому его можно настроить по-разному в каждом веб-приложении.

И хотя вы не можете иметь разные системные свойства для каждого веб-приложения (поскольку по своей природе система означает глобальные), вы можете иметь разные доступные программисту свойства для каждого веб-приложения, но не системные свойства.

С Tomcat 7, настроенным на соответствие спецификации Servlet 3.0, вы можете создать свой собственный ServletContainerInitializer, настроить этот инициализатор так, чтобы он инициализировался в первую очередь, перед всеми другими инициализаторами, а затем в этом инициализаторе вы можете считывать настройки из файла, DB или что-то еще и «припарковать» их в коллекции атрибутов ServletContext.Как правило, ваш инициализатор проверяет систему, на которой работает, и устанавливает атрибуты в зависимости от того, что он обнаруживает.Нет смысла читать их из файла, так как вы можете просто оставить их в web.xml.Затем код в вашем веб-приложении может извлечь настройки из уникального экземпляра веб-приложения из коллекции атрибутов его ServletContext.Это позволяет уникально настраивать каждое веб-приложение или каждый экземпляр одного и того же веб-приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...