2011-12-27 5 views
9

Есть ли способ распознать изменения сервера без перезагрузки после обновления файла свойств? Потому что это вызывает Java.lang.OutOfMemoryError: пространство PermGen после второго перезапуска.Признание изменений файла свойств без перезагрузки Tomcat

Файл свойств находится в папке Web-Inf.

Приветствия ...

ответ

8

Нет прямого пути!

Tomcat Webload Classloader кэширует каждый ресурс, который был загружен им. Изменение не будет видно, если вы не перезапустите контекст. Отсутствует API, очищающий этот кеш. Все, что вы можете сделать, это доступ к этой карте через отражение и вызов метода clear. Все ресурсы будут перечитываться с диска по запросу. Очистить this HashMap и все готово! Монитор файлов действительно не поможет, так как у вас есть пользовательский загрузчик классов.

1

Если вы еще не используете JDK 7, я бы предложил использовать File Monitor like this для мониторинга изменений в вашем файле свойств, а когда он изменил, просто перечитайте файл свойств в свой объект Properties.

Смежные вопросы