Применять фильтр сервлетов только в некоторых средах - PullRequest
0 голосов
/ 08 марта 2011

У меня есть фильтр сервлетов, который добавляет случайную величину задержки к каждому запросу.Прямо сейчас я включаю его во время разработки и отключаю перед развертыванием на рабочем сервере, но я должен сделать это вручную.

Что я могу сделать, чтобы автоматически определять среду разработки и применять только фильтр там?

Ответы [ 2 ]

2 голосов
/ 08 марта 2011

Мы используем системные свойства для установки свойства на каждом сервере приложений, которое позволяет приложению определять, запущено ли оно на live или dev.Это работает лучше всего, если у вас есть контроль над этими средами, что означает, что вы можете стандартизировать соглашения об именах и т. Д.

Мы используем Tomcat, и сценарии запуска и завершения работы были изменены, чтобы добавить некоторые дополнительные свойства в JVM.Например:

JVM_OPTS="-Dfuturemedium.javalogs=/usr/share/tomcat_a/logs/ \
-Dfuturemedium.server.development=false \
-Dfuturemedium.smtp.server=localhost"

Это означает, что специфичные для среды свойства берутся в руки каждого отдельного разработчика и передаются в саму среду, где они могут контролироваться системным администратором, и не дублируются в файлах сборки.и т. д.

Затем мы можем получить доступ к этим свойствам в коде через:

boolean dev = Boolean.parseBoolean(System.getProperty("futuremedium.server.development", "false"));

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

log4j.appender.myapplication_file.File=${futuremedium.javalogs}myapplication.log

Достаточно просто указать эти же свойства в командной строке для любых приложений CLI, чтобы он был достаточно прозрачным внутри или снаружи контейнера.

Не уверен, какую IDE вы используете, но если вы запускаете сервер приложений внутри него, то должна быть возможность управлять этими дополнительными свойствами также через IDE.Для Tomcat внутри Netbeans перейдите в Инструменты -> Серверы -> Tomcat -> Платформа -> Параметры виртуальной машины

0 голосов
/ 08 марта 2011

Если у вас есть какое-то свойство, которое доступно через build.xml, то build.xml может манипулировать вашим web.xml, чтобы разрешить отключение необходимых вам фильтров в зависимости от среды.Предполагая, что вы используете build.xml.

...