Oracle
 sql >> Base de données >  >> RDS >> Oracle

Quelle est la meilleure façon de précompiler les JSP en utilisant Ant

Le compilateur JSP d'Oracle est disponible dans votre installation oc4j à ORACLE_HOME/j2ee/home/jsp/bin/ojspc

En supposant que votre chemin de classe est correct à la ligne compand que vous exécuteriez :

ojspc votre.war

La guerre sera mise à jour et placera un jar dans le WEB-INF/lib contenant les JSP pré-compilés. Notez que si vous pré-compilez vos JSP, vous devez également définir MAIN_MODE sur 'JUSTRUN' pour bénéficier des performances supplémentaires de la pré-compilation de vos JSP. Le paramètre JUSTRUN fait ce qu'il implique, le conteneur OC4J ne vérifiera plus les fichiers .jsp mis à jour.

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

Une fois que vous êtes à l'aise avec l'appel de ojspc à partir de la ligne de commande, vous pouvez alors commencer à utiliser les tâches ANT fournies par Oracle.

Dans ANT

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

Votre balise de projet doit faire référence aux tâches Oracle :

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

Mise à jour 22/02/2011 Vous pouvez également travailler directement avec le jar ojspc et éviter d'essayer de configurer la tâche oracle:compileJsp, le code ci-dessous prend un fichier war et pré-compile le JSPS dedans.

 <!-- 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 défnition jspPreCompileClassPath ressemble à ceci :

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