Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Was ist der beste Weg, um JSPs mit Ant vorzukompilieren?

Der JSP-Compiler von Oracle ist in Ihrer oc4j-Installation unter ORACLE_HOME/j2ee/home/jsp/bin/ojspc

verfügbar

Angenommen, Ihr Klassenpfad ist in der Compand-Zeile korrekt, die Sie ausführen würden:

ojspc your.war

Der Krieg wird aktualisiert und platziert ein JAR in der WEB-INF/lib, das die vorkompilierten JSPs enthält. Beachten Sie, dass Sie beim Vorkompilieren von JSPs auch den MAIN_MODE auf „JUSTRUN“ setzen sollten, um den zusätzlichen Leistungsvorteil der Vorkompilierung Ihrer JSPs zu nutzen. Die JUSTRUN-Einstellung tut, was sie impliziert, der OC4J-Container sucht nicht mehr nach aktualisierten .jsp-Dateien.

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

Sobald Sie mit dem Aufrufen von ojspc über die Befehlszeile vertraut sind, können Sie damit beginnen, die von Oracle bereitgestellten ANT-Tasks zu verwenden.

Innerhalb von ANT

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

Ihr Projekt-Tag sollte auf die Oracle-Aufgaben verweisen:

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

Aktualisierung 22.02.2011 Sie können auch einfach direkt mit dem ojspc-jar arbeiten und vermeiden, den Task oracle:compileJsp zu konfigurieren, der folgende Code nimmt eine WAR-Datei und kompiliert das JSPS darin vor.

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

die jspPreCompileClassPath-Defnition sieht so aus:

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