У меня есть сервер разработки на Tomcat 6. Я только что установил Tomcat 8 и заметил, что он больше не перекомпилирует JSP при попадании на страницу. Что мне нужно изменить в server.xml, чтобы он перекомпилировал их при переходе на страницу?
Примечание. Кто-то указал мне на http://tomcat.apache.org/tomcat-8.0-doc/config/loader.html но я не думаю, что это ответ на вопрос, потому что меня не волнует перезагрузка jar-файлов или файлов классов в /WEB-INF/classes/
или /WEB-INF/lib
, просто перекомпилируя JSP.
И если по какой-то причине это невозможно сделать в Tomcat 8, можно ли это сделать в Tomcat 7?
Tomcat 8 и 7 использует Jasper 2 JSP Engine. В эту версию внесено одно из изменений:
Фоновая компиляция JSP
Если вы измените страницу JSP, которая уже была скомпилирована, Jasper 2 может перекомпилировать эту страницу в фоновом режиме. Ранее скомпилированная страница JSP по-прежнему будет доступна для обслуживания запросов. Как только новая страница будет успешно скомпилирована, она заменит старую. Это помогает повысить доступность ваших страниц JSP на рабочем сервере.
Для управления этим поведением вы можете использовать следующие параметры (в $CATALINA_BASE/conf/web.xml
):
checkInterval - Если разработка ложна и checkInterval больше нуля, фоновые компиляции включены. checkInterval - это время в секундах между проверками, чтобы увидеть, нужно ли перекомпилировать страницу JSP (и ее зависимые файлы). По умолчанию 0 секунд.
развитие - Используется ли Джаспер в режиме разработки? Если true, частота, с которой JSP проверяются на предмет модификации, может быть указана с помощью параметра модификацииTestInterval. True или
false
, дефолтtrue
.
Узнать больше: Jasper 2 JSP Engine Как сделать