一尘不染

在没有Javac的情况下使用Jetty 7.3执行JSP

jsp

问题:我有一个由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任务时犯的错误。


阅读 209

收藏
2020-06-10

共1个答案

一尘不染

不要使用ant提供的jspc任务。它已弃用,易碎,并且仅在安装了Tomcat 4(某些版本)的情况下可以使用。

相反,请安装Tomcat(最适合您所部署的Jetty的JSP / Servlet规范版本),然后通过Tomcat提供的Ant任务调用Jasper编译器。
此处提供了有关Tomcat 5的示例

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

另请注意,在ant末尾的注释提供了jspc任务。我不知道它是否仍然有用,但是很有趣。

2020-06-10