Oracle
 sql >> Database >  >> RDS >> Oracle

Qual è il modo migliore per precompilare JSP utilizzando Ant

Il compilatore JSP di Oracle è disponibile nella tua installazione di oc4j su ORACLE_HOME/j2ee/home/jsp/bin/ojspc

Supponendo che il tuo percorso di classe sia corretto alla riga di composizione che eseguiresti:

ojspc your.war

La guerra verrà aggiornata e collocherà un jar nel WEB-INF/lib contenente i JSP precompilati. Nota che se i tuoi JSP precompilano dovresti anche impostare MAIN_MODE su 'JUSTRUN' per ottenere il vantaggio aggiuntivo in termini di prestazioni della precompilazione dei tuoi JSP. L'impostazione JUSTRUN fa ciò che implica, il contenitore OC4J non verificherà più i file .jsp aggiornati.

<servlet>
    <servlet-name>jsp</servlet-name>
    <servlet-class>oracle.jsp.runtimev2.JspServlet</servlet-class>
    <init-param>
      <param-name>main_mode</param-name>
      <param-value>justrun</param-value>
    </init-param>
</servlet>

Una volta che ti senti a tuo agio con la chiamata ojspc dalla riga di comando, puoi quindi iniziare a utilizzare le attività ANT fornite da Oracle.

All'interno di ANT

<oracle:compileJsp file="dist/war/before-${app}war"
        verbose="false"
        output="dist/war/${app}.war" />

Il tag del tuo progetto dovrebbe fare riferimento alle attività di Oracle:

<project name="your-name" default="compile" basedir="."  xmlns:oracle="antlib:oracle">
...
</project>

Aggiornamento 22.02.2011 Puoi anche lavorare direttamente con il jar ojspc ed evitare di provare a configurare l'attività oracle:compileJsp, il codice seguente prende un file war e pre-compila il JSPS al suo interno.

 <!-- Now Precompile the War File (see entry in <project> tag ) -->
    <java jar="${env.ORACLE_HOME}/j2ee/home/ojspc.jar" classpathref="jspPreCompileClassPath" fork="true">
        <arg value="-addClasspath"/>
        <arg pathref="classpath"/>
        <arg line="'${dist}/war/a-war-file.war'"/>
    </java>

la definizione jspPreCompileClassPath è simile a questa:

  <path id="jspPreCompileClassPath">
    <path location="${env.ORACLE_HOME}/j2ee/home/lib/pcl.jar"/>
    <path location="${env.ORACLE_HOME}/j2ee/home/lib/ojsp.jar"/>
    <path location="${env.ORACLE_HOME}/j2ee/home/lib/oc4j-internal.jar"/>
    <path location="${env.ORACLE_HOME}/j2ee/home/lib/servlet.jar"/>
    <path location="${env.ORACLE_HOME}/j2ee/home/lib/commons-el.jar"/>
    <path location="${env.ORACLE_HOME}/j2ee/home/lib/bcel.jar"/>
    <path location="${env.ORACLE_HOME}/lib/xmlparserv2.jar"/>
    <path location="${env.ORACLE_HOME}/j2ee/home/lib/oc4j-schemas.jar"/>
    <path location="${env.ORACLE_HOME}/j2ee/home/jsp/lib/taglib/ojsputil.jar"/>
  </path>