有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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


共 (1) 个答案

  1. # 1 楼答案

    Oracle的JSP编译器可以在Oracle_HOME/j2ee/HOME/JSP/bin/ojsp上的oc4j安装中找到

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

    这是你的。战争

    war将得到更新,并在包含预编译JSP的WEB-INF/lib中放置一个jar。请注意,如果预编译JSP,还应将MAIN_模式设置为“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任务了

    蚂蚁内部

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

    2011年2月22日更新 您也可以直接使用ojspc jar,避免试图配置oracle:compileJsp任务,下面的代码获取一个war文件,并预编译其中的JSP

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