2011-04-26 80 views
3

在應用程序部署期間或在jboss啓動過程中可以編譯jsp嗎?通常jsp都是即時編譯的,但編譯之前完成會很方便...Jsp編譯不能與jboss同步

我再也看不到預編譯jsp wit jee6 ...這就是爲什麼庫不提供jboss 6。還有另一種方法可以做到嗎?

在此先感謝!

+0

只是好奇 - 你有一個鏈接,它說你不應該/不能J2EE6的JSP預編譯?從來沒有聽說過,往往懷疑它。 – MJB 2011-04-26 06:30:08

+0

http://community.jboss.org/thread/156757 – jsebfranck 2011-04-26 08:18:12

回答

6

您需要修改$服務器/部署/ jbossweb.sar/web.xml並有JSP的servlet包括正校驗值

<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]    --> 
+0

使用checkInterval時,每隔x秒編譯一次jsp。僅在應用程序部署期間纔可以進行編譯? – jsebfranck 2011-04-26 09:26:45

+1

它們不是每隔x秒編譯一次,但是如果.jsp比xs匹配的.class文件年輕,就會進行檢查。 – 2011-04-26 09:40:39

+1

如果你正在使用JBoss 5.x EAP,你可以在$ server/deployers/jbossweb.deployer/web.xml中找到這個文件。 – spekdrum 2014-01-02 16:48:22

2

我在開發環境中遇到了類似的問題。感謝Heiko的回答,我嘗試了另一種方法,在web.xml中設置development和modificationTestInterval,如下所示。

<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 \服務器\默認\ tmp目錄\%random_crap%\戰爭1.0.war \ WEB-INF \ jsp的',並將它重新編譯,無需重新啓動JBOSS 。

另外要注意的是,在JBoss 4.3中這不是必需的,因此對於從4.3升級到5.2的開發人員,只需注意這一額外步驟。

+0

但是你怎麼(自動)爲_production_部署將'development'變成'false'? – KrishPrabakar 2013-12-13 02:33:36

0

默認情況下,像EAP 6這樣的最新版本的JBoss會預編譯所有的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

問候, 貢薩洛