Как включить значения из файла .properties в web.xml?

Мне нужно включить некоторые значения из file.properties в WEB-INF/web.xml примерно так:

 uploadDirectory myFile.properties['keyForTheValue'] 

Я сейчас работаю с этим:

  • JBoss
  • JEE5

Вы можете добавить этот class, который добавит все свойства из вашего файла в JVM. И добавьте этот class, как context-listener, в web.xml

 public class InitVariables implements ServletContextListener { @Override public void contextDestroyed(final ServletContextEvent event) { } @Override public void contextInitialized(final ServletContextEvent event) { final String props = "/file.properties"; final Properties propsFromFile = new Properties(); try { propsFromFile.load(getClass().getResourceAsStream(props)); } catch (final IOException e) { // can't get resource } for (String prop : propsFromFile.stringPropertyNames()) { if (System.getProperty(prop) == null) { System.setProperty(prop, propsFromFile.getProperty(prop)); } } } } 

в web.xml

    com.company.InitVariables   

теперь вы можете получить все свойства в вашем проекте, используя

 System.getProperty(...) 

или в web.xml

 param-name ${param-name} 

Слово предостережения относительно принятого решения выше.

Я экспериментировал с этим на jboss 5 сегодня: метод contextInitialized() не contextInitialized() до тех пор, пока не будет загружен web.xml поэтому изменение свойств System не вступит в действие со временем. Как это ни странно, это означает, что если вы повторно развернете webapp (без перезапуска jboss), свойство будет выживать после установки в последний раз, когда оно было развернуто, поэтому может показаться, что оно работает.

Решение, которое мы собираемся использовать вместо этого, – передать параметры jboss через командную строку java, например -Dparameter1=value1 -Dparameter2=value2 .

  • Разница между / и / * в шаблоне url для отображения сервлета
  • Как определить порядок выполнения сервлет-фильтра, используя annotations в WAR
  • Как я могу сопоставить «корневой» сервлет, чтобы другие скрипты все еще выполнялись?
  • Ошибка «Диспетчер Struts не может быть найден» при развертывании приложения на WebLogic 12.1.3
  • Как указать страницу ошибки по умолчанию в web.xml?
  • Каково значение url-шаблона в web.xml и как настроить сервлет?
  • Как настроить список приветственных файлов в web.xml
  • Загрузка контекста весной с помощью web.xml
  • Ссылка на переменные окружения в web.xml
  • Что такое resource-ref в web.xml?
  • Мне действительно нужен web.xml для веб-приложения на основе сервлета?
  • Давайте будем гением компьютера.