问题: 我有一个由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任务时所犯的错误。
答案 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。我不知道它是否仍然相关,但它很有趣。