Мы используем как Apache Tomcat 6.0, так и Jetty 6, где я работаю. В основном мы используем Jetty для тестирования (он отлично подходит для работы в тестах JUnit) и Tomcat для производства.
По умолчанию Tomcat компилирует JSP "на лету", когда пользователи запрашивают их. Но это приводит к снижению производительности для первого удара. Он также выделяет причудливые ошибки в компиляторе Tomcat JSP.
Документация Tomcat дает рекомендации по предварительной компиляции JSP во время сборки с использованием Ant (а также доступен плагин Maven). но в результате WAR содержит специфические для Tomcat вещи, например PageContextImpl.proprietaryEvaluate, поэтому мы не можем использовать его в Jetty.
Есть ли какой-то флаг или параметр, который мы можем использовать где-нибудь, чтобы заставить Tomcat прекомпилировать все JSP, как только WAR инициализируется? Мы готовы подождать немного дольше при запуске для этого.
Заранее: я знаю, что есть способ предварительно скомпилировать только один JSP, явно идентифицируя тэг /servlet/load -on-startup в web.xml для одного JSP. Но для десятков или даже сотен JSP, которые становятся неуправляемыми.