Есть ли способ разрешить системные свойства в файле web.xml?
Вопрос
Я добавил системное свойство в файл run.conf моего JBOSS следующим образом:
JAVA_OPTS="$JAVA_OPTS -Dfoo=bar"
Теперь мой вопрос: есть ли способ разрешить это свойство в файле web.xml примерно так:
...
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:applicationContext-common.xml
classpath:conf/${foo}/applicationContext-local.xml
</param-value>
</context-param>
...
Решение
Я не знаю никакой возможности.Но на мой взгляд это должно быть реализовано в приложении.Почему вы хотите увеличить косвенность?Обычно вы получаете доступ к содержимому web.xml из вашего приложения (app > web.xml).Зачем это делать:приложение > web.xml > переменная среды?
Другие советы
Вы должны установить замена свойства-дескриптора спецификации в Standalone.xml в истинный
<subsystem xmlns="urn:jboss:domain:ee:1.2">
<spec-descriptor-property-replacement>true</spec-descriptor-property-replacement>
<jboss-descriptor-property-replacement>true</jboss-descriptor-property-replacement>
</subsystem>
Поскольку JBoss внутренне использует веб-контейнер tomcat, он должен работать как ваш пример (${foo}/applicationContext-local.xml).Я не пробовал использовать JBoss, но мы постоянно используем этот метод в Tomcat.
web.xml следует применять только к одному веб-приложению.Он не должен иметь глобальной конфигурации.Так что нет.В любом случае, к моменту загрузки сервера и вашего веб-приложения уже слишком поздно начинать воспроизводить аргументы командной строки.