sql >> Base de Datos >  >> RDS >> Oracle

¿Cuál es la mejor manera de precompilar JSP usando Ant?

El compilador JSP de Oracle está disponible en su instalación de oc4j en ORACLE_HOME/j2ee/home/jsp/bin/ojspc

Suponiendo que su ruta de clase sea correcta en la línea de compilación que ejecutaría:

ojspc tu.guerra

La guerra se actualizará y colocará un contenedor en WEB-INF/lib que contiene los JSP precompilados. Tenga en cuenta que si precompila JSP, también debe configurar MAIN_MODE en 'JUSTRUN' para obtener el beneficio de rendimiento adicional de precompilar sus JSP. La configuración JUSTRUN hace lo que implica, el contenedor OC4J ya no buscará archivos .jsp actualizados.

<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 vez que se sienta cómodo llamando a ojspc desde la línea de comando, puede comenzar a usar las tareas ANT proporcionadas por Oracle.

Dentro de ANT

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

La etiqueta de su proyecto debe hacer referencia a las tareas de Oracle:

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

Actualización 22.02.2011 También puede simplemente trabajar con el jar ojspc directamente y evitar intentar configurar la tarea oracle:compileJsp, el siguiente código toma un archivo war y precompila el JSPS en él.

 <!-- 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 definición de jspPreCompileClassPath se ve así:

  <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>