2008-10-23 7 views
5

Ich versuche herauszufinden, die beste Möglichkeit, Ant zu verwenden, um JSPs vorkompilieren, die auf einem Oracle-Anwendungsserver bereitgestellt werden. Obwohl ich auf einem Oracle-Anwendungsserver bereitstellen möchte, möchte ich die Verwendung der Oracle-Ant-Version vermeiden.Was ist der beste Weg zum Vorkompilieren von JSPs mit Ant

Antwort

2

Ich bin mir nicht sicher, was Sie mit Oracles Version von Ant meinen, aber wie ich es verstehe, werden Sie die Ameisenaufgabe des Orakels brauchen, um diesen Job zu machen. This Seite erklärt, wie es geht. Sie verwenden die Apache-Ant, die Sie von der Apache-Website herunterladen, aber Sie müssen die Oracle-Ant-Task-Bibliothek von Oracle verwenden, um JSPs für Oracle vorab zu kompilieren.

+0

Defekten Link Alternative: http://web.archive.org/web/20090717005115/http://download-west.oracle.com/ docs/cd/B32110_01/web.1013/b28961/ojspc.htm –

7

Oracle JSP-Compiler ist bei ORACLE_HOME/j2ee/home/jsp/ist/ojspc

in Ihrem oc4j installiert verfügbar

Classpath Unter der Annahme, bei der COMPAND Linie richtig ist, würden Sie laufen:

ojspc your.war

Der Krieg wird aktualisiert und ein Jar in die WEB-INF/lib mit den vorkompilierten JSPs gelegt. Beachten Sie, dass Sie bei der Vorkompilierung von JSPs den MAIN_MODE auch auf "JUSTRUN" setzen sollten, um den zusätzlichen Leistungsvorteil beim Vorkompilieren Ihrer JSPs zu erhalten. Die JUSTRUN-Einstellung tut, was sie beinhaltet, der OC4J-Container wird nicht mehr nach aktualisierten JSP-Dateien suchen.

<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 Ihr bequem mit von der Kommandozeile aufrufen ojspc können Sie dann damit beginnen, die ANT Aufgaben, die von Oracle zu verwenden.

Innerhalb ANT

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

Ihr Tag Projekt sollte die Oracle-Aufgaben Referenz:

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

aktualisieren 2011.02.22 Sie können auch einfach direkt mit dem ojspc Glas arbeiten und vermeiden Sie versuchen, die oracle: compileJsp Task zu konfigurieren, der folgende Code nimmt eine WAR-Datei und pre-kompiliert die JSPS drin.

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