【问题标题】:How to force Jetty to recompile JSP on each modification如何强制 Jetty 在每次修改时重新编译 JSP
【发布时间】:2016-10-08 09:42:36
【问题描述】:

我想将更改部署到 Jetty,并能够在下一次请求时看到新结果,而无需使用所有 Web 应用重新启动 Jetty。

官方JSP config documentation是这样描述的:

如果 development=true,则对每个请求进行重新编译检查。

这是来自我的网络应用程序web.xml 的 JSP 配置

<servlet id="jsp">
    <servlet-name>jsp</servlet-name>
    <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
    <init-param>
        <param-name>fork</param-name>
        <param-value>false</param-value>
    </init-param>
    <init-param>
        <param-name>xpoweredBy</param-name>
        <param-value>false</param-value>
    </init-param>
    <init-param>
        <param-name>trimSpaces</param-name>
        <param-value>true</param-value>
    </init-param>
    <init-param>
        <param-name>development</param-name>
        <param-value>true</param-value>
    </init-param>
    <init-param>
        <param-name>modificationTestInterval</param-name>
        <param-value>1</param-value>
    </init-param>
    <init-param>
        <param-name>checkInterval</param-name>
        <param-value>0</param-value>
    </init-param>
    <init-param>
        <param-name>reload-interval</param-name>
        <param-value>-1</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup>
    <init-param>
        <param-name>compilerSourceVM</param-name>
        <param-value>1.7</param-value>
    </init-param>
    <init-param>
        <param-name>compilerTargetVM</param-name>
        <param-value>1.7</param-value>
    </init-param>
</servlet>

不幸的是,这对我不起作用。那怎么了?

Linux,jetty-distribution-9.1.5.v20140505 (Zimbra 8.6.0_GA_1153)

【问题讨论】:

  • 注意:wiki.eclipse.org 适用于 Jetty 7 和 8(如 wiki 页面顶部所述),不适用于 Jetty 9(其文档已移动,在顶部也有引用维基页面)
  • @JoakimErdfelt 好收获!但是 Jetty 9 文档对这个 eclipse.org/jetty/documentation/9.1.5.v20140505/… 也这么说

标签: jetty jetty-9 zimbra


【解决方案1】:

由于您正在开发 Zimbra,您可能想看看 LibreZimbra (librezimbra.github.io) 项目 - Zimbra OSE 的一个分支,因为 Synacor 甚至不关心重复出现 15 年错误。

我偶然发现了您的帖子,因为我只需要向 login.jsp 添加一些额外的调试代码,以便追踪 NullPointerException 的原因 - 并且遇到强制 jsp 类重建的相同问题。

提示:如果您在日志中得到神秘的 500,没有任何内容,请编辑 jetty.xml.in(需要完全重启,因此 zmconfigd 会重建 jetty.xml),查找错误处理程序 - 启用堆栈跟踪输出并注释掉自定义错误页面。然后,您将在 HTTP 回复(浏览器)中获得完整的异常堆栈跟踪。

【讨论】:

    猜你喜欢
    • 2015-10-16
    • 1970-01-01
    • 2019-08-25
    • 1970-01-01
    • 1970-01-01
    • 2013-08-17
    • 2015-07-04
    • 2011-05-02
    • 2023-03-06
    相关资源
    最近更新 更多