Как изменить init-параметры во время выполнения? - PullRequest
4 голосов
/ 15 января 2010

Если я изменяю XML для изменения значения параметра init, я вижу изменения только при повторном развертывании веб-приложения.

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

Ответы [ 3 ]

8 голосов
/ 15 января 2010

Это называется init-parameter по причине. Так что вы не можете.

Но вы можете изменять значения во время выполнения, это не проблема.

  1. После прочтения параметров init поместите их в качестве атрибутов ServletContext (ctx.setAttribute("name", value))
  2. Создать небольшую (защищенную паролем) страницу, которая перечисляет все атрибуты ServletContext и дает возможность их изменять.
2 голосов
/ 15 января 2010

Вместо этого используйте файлы свойств и напишите код, чтобы он 1) считывал значение из него каждый раз, или 2) мог перезагрузить значение по команде, или 3) перезагружал файл автоматически через определенные интервалы ,

Если вы поместите файл свойств где-нибудь в путь к классам времени выполнения веб-приложения или добавите его путь к пути к классам времени выполнения веб-приложения, то вы можете легко получить к нему доступ / загрузить его следующим образом:

Properties properties = new Properties();
properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("filename.properties"));
String value = properties.get("key");
2 голосов
/ 15 января 2010

Может быть, вы могли бы использовать конфигурация apache commons , в частности взгляните на Автоматическая перезагрузка ...

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