Компиляция Jsp не выполняется на лету с помощью jboss

#java #jsp #jboss #compilation

#java #jsp #jboss #Сборник

Вопрос:

Возможно ли скомпилировать jsp во время развертывания приложения или во время запуска jboss? Обычно jsp компилируются «на лету», но было бы удобно, если бы компиляция была выполнена раньше…

Я читал, что предварительная компиляция jsp с jee6 больше невозможна… Вот почему библиотеки не поставляются с jboss 6. Есть ли другой способ сделать это?

Заранее спасибо!

Комментарии:

1. Просто любопытно — у вас есть ссылка, где говорится, что вы не должны / не можете предварительно компилировать JSP с помощью J2EE6? Никогда не слышал об этом раньше, склонен сомневаться в этом.

2. community.jboss.org/thread/156757

Ответ №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 to false для производственных развертываний?

Ответ №3:

По умолчанию последние версии JBoss, такие как EAP 6, предварительно компилируют весь JSP и используют эту совместно скомпилированную версию до полной повторной установки приложения.

Вы можете использовать параметры ‘Keep-Generated’ и ‘Check-Interval’ для изменения этого поведения, чтобы JBoss перекомпилировал JSP-файлы при каждом их обновлении. У вас есть подробное описание этих параметров на:

https://access.redhat.com/site/documentation/en-US/JBoss_Enterprise_Application_Platform/6.1/html/Administration_and_Configuration_Guide/chap-Web_Subsystem.html

С уважением, Гонсало