Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Jetty 7.3执行JSP而不使用javac_Java_Jsp_Jetty - Fatal编程技术网

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

使用Jetty 7.3执行JSP而不使用javac,java,jsp,jetty,Java,Jsp,Jetty,问题是: 我有一个由Jetty web服务器V7.3提供服务的web应用程序。我在应用程序中有一个JSP页面。当我在安装了JDK(javac)的系统上运行Jetty时,一切正常。我想把它移植到一个有JRE(没有javac)的系统。当我运行Jetty时,我得到一个错误 解决方案: 将JSP预编译为Servlet。生成包含此servlet的应用程序war文件。让jetty在运行时执行Servlet,而不是编译和执行JSP 我尝试使用JSPCAnt目标预编译JSP。但它正在生成一个空的.java文件。

问题是: 我有一个由Jetty web服务器V7.3提供服务的web应用程序。我在应用程序中有一个JSP页面。当我在安装了JDK(javac)的系统上运行Jetty时,一切正常。我想把它移植到一个有JRE(没有javac)的系统。当我运行Jetty时,我得到一个错误

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

我尝试使用JSPCAnt目标预编译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任务时犯的错误

不要使用ant提供的
jspc
任务。它是不推荐使用的、不稳定的,并且只在安装了Tomcat4(某些版本)的情况下使用

相反,安装Tomcat(无论哪个版本最支持与部署的Jetty相同的JSP/Servlet规范),并通过Tomcat提供的Ant任务调用Jasper编译器

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


。我不知道它是否仍然是相关的,但它是有趣的。

如果你不能使这工作,然后考虑添加ECJ到你的码头安装,正如在一个想法中所描述的,你试着用Adbug标记来运行蚂蚁吗?它可能会报告一些比简单地将空文件提供给您更有用的内容。