jsp - 用jetty加载预编译好的jsps还需要jdk吗?

标签 jsp jetty precompile

我正在尝试将jetty与JRE而不是JDK一起使用。我想如果我预编译jsp,并将生成的类文件放在类路径上,那么当浏览器请求时,jetty就不需要尝试编译jsp,但我得到了

org.apache.jasper.JasperException: PWC6345: There is an error in invoking javac. 
A full JDK (not just JRE) is required

当我从浏览器请求jsp时,无论我做什么。

我的 webdefault.xml 中有这些初始化参数,并且构建的类文件肯定位于类路径上

   <init-param>
        <param-name>reloading</param-name>
        <param-value>false</param-value>
   </init-param>
   <init-param>
        <param-name>development</param-name>
        <param-value>false</param-value>
   </init-param>
   <init-param>
        <param-name>classpath</param-name>
        <param-value>c:/project/build/classes</param-value>
   </init-param>

如何让 jetty 不再尝试再次编译 jsp,以便我可以使用 jre 而不是 jdk 运行它?

最佳答案

在努力为在 JRE 上运行的 Jetty 预编译 JSP 后,我发现预编译是不必要的。 Jetty(7.5.5 及更高版本)附带一个编译器,当使用 JRE 运行 Jetty 时,可使用该编译器来编译 JSP。详细信息可以在此页面找到:

https://wiki.eclipse.org/Jetty/Howto/Configure_JSP#Compiling_JSPs

简而言之,将以下代码段添加到 jetty.xml 中:

<Call class="java.lang.System"  name="setProperty">
  <Arg>org.apache.jasper.compiler.disablejsr199</Arg>
  <Arg>true</Arg>
</Call>

或将这一行写入start.ini:

-Dorg.apache.jasper.compiler.disablejsr199=true

关于jsp - 用jetty加载预编译好的jsps还需要jdk吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21945897/

相关文章:

java - 在同一个jsp页面上显示警报消息

java - 如何在 HTML.form 中添加 id 到操作

jsp - 在 JSP/Servlet 中填充级联下拉列表

ssl - 使用 OpenSSL/https 保护多核 solr/jetty 服务器

javascript - Ruby Rails 预编译 Assets 与使用 Assets 管道

css - Rails 不显示背景图像

java - 使用Java程序作为Java Web APP的一部分

solr - ubuntu 14 启动jetty失败

google-app-engine - 是否可以在 Google App Engine 中设置 session cookie 路径?

.net - 在 Visual Studio 中发布网站 : Use 'Fixed naming and single page assemblies' ?