tags:

views:

1139

answers:

2

I am trying to figure out the best way to use ANT to precompile JSPs that will be deployed to an Oracle application server. Even though I am deploying to an Oracle app server I would like to avoid using Oracle's version of ANT.

+2  A: 

I'm not sure what you mean by Oracle's version of Ant but as I understand it you will need the oracle's ant task to do this job. This page explains how to do it. You will be using the apache ant that you download from the apache website, but you need to use Oracle ant task library from Oracle to pre compile JSPs for Oracle.

Vincent Ramdhanie
+6  A: 

Oracle's JSP compiler is available in your oc4j install at ORACLE_HOME/j2ee/home/jsp/bin/ojspc

Assuming your classpath is correct at the compand line you would run:

ojspc your.war

The war will get updated and place a jar in the WEB-INF/lib containing the pre-compiled JSPs. Note that if your pre-compiling JSPs you should also set the MAIN_MODE to 'JUSTRUN' to get the additional performance benefit of pre-compiling your JSPs. The JUSTRUN setting does what it implies, the OC4J container will no longer check for updated .jsp files.

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

Once your comfortable with calling ojspc from the command line You can then begin to use the ANT tasks provided by Oracle.

Within ANT

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

Your project tag should reference the oracle tasks:

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