Oracle的JSP编译器在您的oc4j安装中可用于ORACLE_HOME/j2ee/home/jsp/bin/ojspc
假设您的类路径在compand行正确,您将运行:
ojspc your.war
战争将得到更新,并在包含预编译JSP的WEB-INF/lib中放置一个jar.请注意,如果您的预编译JSP还应将MAIN_MODE设置为"JUSTRUN",以获得预编译JSP的额外性能优势.JUSTRUN设置完成了它的含义,OC4J容器将不再检查更新的.jsp文件.
<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>
Run Code Online (Sandbox Code Playgroud)
一旦熟悉从命令行调用ojspc,您就可以开始使用Oracle提供的ANT任务了.
在ANT内
<oracle:compileJsp file="dist/war/before-${app}war"
verbose="false"
output="dist/war/${app}.war" />
Run Code Online (Sandbox Code Playgroud)
您的项目标记应该引用oracle任务:
<project name="your-name" default="compile" basedir="." xmlns:oracle="antlib:oracle">
...
</project>
Run Code Online (Sandbox Code Playgroud)
更新02.22.2011 你也可以直接使用ojspc jar并避免尝试配置oracle:compileJsp Task,下面的代码接受war文件并在其中预编译JSPS.
<!-- 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>
Run Code Online (Sandbox Code Playgroud)
jspPreCompileClassPath定义如下所示:
<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>
Run Code Online (Sandbox Code Playgroud)