#java #jsp #jboss #compilation
#java #jsp #jboss #Сборник
Вопрос:
Возможно ли скомпилировать jsp во время развертывания приложения или во время запуска jboss? Обычно jsp компилируются «на лету», но было бы удобно, если бы компиляция была выполнена раньше…
Я читал, что предварительная компиляция jsp с jee6 больше невозможна… Вот почему библиотеки не поставляются с jboss 6. Есть ли другой способ сделать это?
Заранее спасибо!
Комментарии:
1. Просто любопытно — у вас есть ссылка, где говорится, что вы не должны / не можете предварительно компилировать JSP с помощью J2EE6? Никогда не слышал об этом раньше, склонен сомневаться в этом.
Ответ №1:
Вам необходимо изменить $server/deploy/jbossweb.sar/web.xml и должен ли сервлет jsp включать положительное контрольное значение
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>checkInterval</param-name>
<param-value>1</param-value>
</init-param>
Смотрите документы над тегом:
<!-- checkInterval If development is false and checkInterval is -->
<!-- greater than zero, background compilations are -->
<!-- enabled. checkInterval is the time in seconds -->
<!-- between checks to see if a JSP page needs to -->
<!-- be recompiled. [0] -->
<!-- -->
<!-- modificationTestInterval -->
<!-- Causes a JSP (and its dependent files) to not -->
<!-- be checked for modification during the -->
<!-- specified time interval (in seconds) from the -->
<!-- last time the JSP was checked for -->
<!-- modification. A value of 0 will cause the JSP -->
<!-- to be checked on every access. -->
<!-- Used in development mode only. [4] -->
Комментарии:
1. С помощью checkInterval jsp компилируются каждые x секунд. Возможно ли выполнить компиляцию только во время развертывания приложения?
2. Они не компилируются каждые x секунд, но проверка выполняется, если файл .jsp моложе соответствующего файла .class каждые x секунд.
3. Если вы работаете с JBoss 5.x EAP, вы можете найти этот файл в $server/deployers/jbossweb.deployer/web.xml
Ответ №2:
Я столкнулся с аналогичной проблемой в своей среде разработки. Благодаря ответу Хейко я попробовал другой вариант, установив development и modificationTestInterval следующим образом в web.xml .
<init-param>
<param-name>development</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>modificationTestInterval</param-name>
<param-value>0</param-value>
</init-param>
Теперь я могу модифицировать JSP в ‘$ JBOSS_HOME server default tmp%random_crap% war-1.0.war WEB-INF jsp’ и перекомпилировать его без перезапуска JBOSS.
Также хочу отметить, что в JBoss 4.3 это не требовалось, поэтому разработчикам, обновляющимся с 4.3 до 5.2, просто следует помнить об этом дополнительном шаге.
Комментарии:
1. Но как вы (автоматически) создаете
development
tofalse
для производственных развертываний?
Ответ №3:
По умолчанию последние версии JBoss, такие как EAP 6, предварительно компилируют весь JSP и используют эту совместно скомпилированную версию до полной повторной установки приложения.
Вы можете использовать параметры ‘Keep-Generated’ и ‘Check-Interval’ для изменения этого поведения, чтобы JBoss перекомпилировал JSP-файлы при каждом их обновлении. У вас есть подробное описание этих параметров на:
С уважением, Гонсало