使用Jetty 7.3执行JSP而不使用javac

时间:2011-11-15 19:14:03

标签: java jsp jetty

问题: 我有一个由Jetty webserver v 7.3提供的Web应用程序。我在应用程序中有一个JSP页面。当我在安装了JDK(安装了javac)的系统上运行Jetty时,一切正常。我想把它移植到一个有JRE(没有javac)的系统。当我运行Jetty时出现错误。

解决方案: 将JSP预编译为Servlet。生成包含此servlet的应用程序war文件。让jetty执行Servlet代替在运行时编译和执行JSP。

我尝试使用JSPC ant目标预编译JSP。但它正在生成一个空的.java文件。我的目标代码如下。

<jspc srcdir="${web.dir}"
          destdir="${build.classes.dir}"
          package="x.y.z"
          verbose="9"
          classpathref="project.class.path">
      <include name="**/index.jsp"/>
    </jspc>

请建议我采取正确的方法。如果我的方法是正确的,请指出我在配置ant任务时所犯的错误。

1 个答案:

答案 0 :(得分:3)

不要使用ant提供的jspc任务。它已弃用,不稳定,只能安装Tomcat 4(某些版本)。

相反,安装Tomcat(最好的版本支持与部署的Jetty相同的JSP / Servlet规范),并通过Tomcat提供的Ant任务调用Jasper编译器。 An example for Tomcat 5 is available here

请注意,一旦将JSP页面编译为Servlet,Servlet就会被编译为类等。您的Jetty部署环境中不需要任何这种“构建环境”。

Also note that the commentary near the end of the ant supplied jspc task。我不知道它是否仍然相关,但它很有趣。