2011-11-15 67 views
1

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

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

我试图使用JSPC ant target来预编译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

如果你不能做这个工作,然后考虑添加ecj到你的Jetty安装中描述http://wiki.eclipse.org/Jetty/Howto/Configure_JSP –

+0

只是一个想法,你有没有尝试过使用-debug运行ant旗?它可能会报告一些比简单地给你的空文件更有用的东西。 –

回答

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。我不知道它是否仍然相关,但它很有趣。

相关问题