Может ли Jetty получать изменения в WEB-INF/lib при горячем развертывании? Как?

Я запускаю несколько веб-приложений на Jetty 6 через Apache. Для них установлено горячее развертывание с использованием файлов .xml в каталоге contexts/. Эти файлы .xml просто определяют экземпляры WebAppContext и сообщают им, где искать файл WAR. При прикосновении к их файлам contexts/.xml обнаруживаются изменения в JSP, определенные в соответствующем WAR-файле, и это здорово.

Проблема заключается в том, что изменения в файлах JAR, содержащихся в папке WEB-INF/lib файла WAR, не сохраняются. Я предполагаю, что это связано с тем, что эти JAR-файлы где-то кэшируются. Это предположение основано на том факте, что перезапуск Jetty улавливает изменения.

Итак, возникает вопрос: можно ли отключить это поведение кэширования или каким-либо другим способом заставить экземпляры WebAppContext получать изменения в библиотеке? Если да, то как?


person pavel.vodenski    schedule 10.11.2009    source источник


Ответы (2)


Сканирование горячего развертывания JBoss не проверяет папку lib:

http://community.jboss.org/wiki/HotDeployLibDirectory

Не уверен, что у Jetty такое же поведение, но вы можете попробовать переместить один из ваших jar-файлов в ту же папку, что и один из ваших jsps, чтобы увидеть, так ли это.

Если это не вариант, то это может помочь:

http://www.jroller.com/larrywilliams/entry/jetty_hot_deploy

person Mark Pope    schedule 24.12.2009
comment
Я не собираюсь проверять это, но это звучит как правдоподобное решение. Другая идея состоит в том, чтобы вводить зависимости .jars через их источники, а не как встроенный модуль. В любом случае, необходимость перезагрузки при изменении библиотеки невелика или не должна быть такой; если вы правильно проектируете свое веб-приложение, изменения в библиотеке должны быть доступны для тестирования независимо от внешнего интерфейса веб-приложения и, следовательно, в любом случае не требуют перезапуска сервера или горячего развертывания. - person pavel.vodenski; 26.12.2009

Вам нужно установить свойство scanInterval на число больше нуля.

Подробнее см. здесь

person David Rabinowitz    schedule 10.11.2009
comment
Да, значение scanInterval по умолчанию для каталога contexts/ уже установлено на 5. Горячее развертывание работает правильно прямо сейчас, моя проблема в том, что подхватываются только изменения JSP, а не изменения файлов .jar, например, в WEB-INF/lib . - person pavel.vodenski; 10.11.2009