java - 使用 Ant 预编译 JSP 的最佳方法是什么

标签 java oracle jsp ant

我正在尝试找出使用 Ant 预编译将部署到 Oracle 应用程序服务器的 JSP 的最佳方法。即使我要部署到 Oracle 应用服务器,我也想避免使用 Oracle 版本的 Ant。

最佳答案

Oracle 的 JSP 编译器在您的 oc4j 安装中可用,位于 ORACLE_HOME/j2ee/home/jsp/bin/ojspc

假设您的类路径在您要运行的 compand 行中是正确的:

ojspc 你的.war

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>

一旦您熟悉了从命令行调用 ojspc,您就可以开始使用 Oracle 提供的 ANT 任务了。

在 ANT 中

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

您的项目标签应该引用 oracle 任务:

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

更新 02.22.2011 您也可以直接使用 ojspc jar 并避免尝试配置 oracle:compileJsp 任务,下面的代码获取一个 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>

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>

关于java - 使用 Ant 预编译 JSP 的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/230037/

相关文章:

java - 从 Map 创建列表,其中包含 Map 值的前 N ​​个对象

sql-server - 连接到 oracle dbms 时 sql server 上的链接服务器问题

java.sql.SQLException : ORA-00902: invalid datatype 异常

linux - request.getRemoteAddr() 无法在 Linux 上运行

java - 转换 source 1.7 和 source < 1.7 in Java

用于在数据挖掘系统中配置模型的 Java 模式

jsp - response.sendRedirect 不起作用

java - 如何使用 JSTL 和 spring 3 从 JSP 获取列表元素

java - 如何将所有jar文件放在一个jar文件中?

oracle 表单未显示所有字段