Intellij IDEA HotSwap с Tomcat работает для классов, но не для JSP
Я делаю военное развертывание (не взрывную войну) в Tomcat7 с IntelliJ IDEA 14. Мое веб-приложение состоит из 2 войн:
- views.war (классы Struts, JSP)
- business.war (Бизнес, персистентность и WS)
Итак, мой CATALINA_HOME/webapps содержит:
- ROOT /
- просмотров/
- бизнес/
Там содержимое в порядке.
А мой CATALINA_BASE/work/catalina/localhost... (переопределенный IDEA) содержит сгенерированные сервлеты (_jsp.class + sources).
Любопытно, что если я внесу изменение в класс представлений Java и перекомпилирую (Ctrl+Maj+F9), мое изменение вступит в силу немедленно. Но если я внесу изменения в JSP, мне придется повторно развернуть. Ctrl+Maj+F9 и HotSwap не работает.
После внесения изменений в JSP я увидел, что файл JSP изменен в моей папке CATALINA_HOME/webapps. Но класс java (myJsp_jsp.java) в CATALINA_BASE/work/catalina/localhost... никогда не меняется, пока я не перезапущу сервер или не переустановлю приложение.
Любая идея? Спасибо
1 ответ
Я понял, что Hotswap использует JVM. Так что это просто работает с классами Java.
Я должен использовать Разнесенную войну, которая напрямую использует файлы в целевой папке Maven со специальной конфигурацией для моего Tomcat. Так что Tomcat не читает файлы папки webapps.