sql >> Database >  >> RDS >> Oracle

Wat is de beste manier om JSP's te precompileren met Ant

Oracle's JSP-compiler is beschikbaar in uw oc4j-installatie op ORACLE_HOME/j2ee/home/jsp/bin/ojspc

Ervan uitgaande dat uw klassenpad correct is op de compand-regel die u zou uitvoeren:

ojspc uw.war

De oorlog wordt bijgewerkt en plaatst een jar in de WEB-INF/lib met daarin de voorgecompileerde JSP's. Merk op dat als u JSP's pre-compileert, u MAIN_MODE ook op 'JUSTRUN' moet instellen om het extra prestatievoordeel van het pre-compileren van uw JSP's te krijgen. De JUSTRUN-instelling doet wat het impliceert, de OC4J-container controleert niet langer op bijgewerkte .jsp-bestanden.

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

Als u eenmaal vertrouwd bent met het aanroepen van ojspc vanaf de opdrachtregel, kunt u de ANT-taken van Oracle gaan gebruiken.

Binnen ANT

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

Uw projecttag moet verwijzen naar de orakeltaken:

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

Update 22.02.2011 Je kunt ook gewoon rechtstreeks met de ojspc-jar werken en voorkomen dat je de oracle:compileJsp-taak probeert te configureren, de onderstaande code neemt een war-bestand en compileert de JSPS daarin vooraf.

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

de jspPreCompileClassPath-definitie ziet er als volgt uit:

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


  1. Waarom werkt mijn Postgres-database een tijdje en kan de server niet worden gestart nadat deze opnieuw is opgestart?

  2. Grafiekproblemen:verbinding maken via NOCYCLE voorafgaande vervanging in SQL-server?

  3. Verschillende waarden weergeven met aggregaten

  4. MySQL Foreign Key ON DELETE CASCADE over 3 tabellen