【问题标题】:Is it possible to update the app without restarting the server in JSF?是否可以在不重新启动 JSF 中的服务器的情况下更新应用程序?
【发布时间】:2011-04-20 09:30:09
【问题描述】:

我正在使用 Eclipse 3.5、Tomcat 6、JSF 1.2 和 IceFaces 1.8。每当我更新应用程序中的任何文件时,我都必须重新启动服务器以查看最新更改。如何在不重启服务器的情况下更新我的应用?

已选择服务器选项“资源更改时自动发布”。

更新:如果我更改主文件,可以立即看到更改。但是,如果我更新 <jsp:directive.include /> 标记中使用的任何文件,我必须重新启动服务器以检查更改或使用虚假更新更新主文件,例如添加空格。

【问题讨论】:

    标签: eclipse jsf tomcat jakarta-ee icefaces


    【解决方案1】:

    Servers 视图中,双击 Tomcat 条目,转到右上角的 Publishing 部分并选择资源更改时自动发布

    但它不会立即发生,大约需要 3 秒。例如,Glassfish 可以在亚秒内完成。

    【讨论】:

    • 此选项被选中,我可以看到,在我更改任何文件后,状态更改为 [重新发布],然后在服务器视图中更改为 [同步]。没关系,但它似乎不适用于 jsp:directive.include 中使用的文件。
    • 我没有经历过这个,但是我从来没有使用过<jsp:directive.include>,只是<jsp:include>。您使用的是哪个 Tomcat 插件?内置的?
    • 当我使用<jsp:include>时,被包含的文件的内容甚至都没有出现,好像什么都没有被真正包含。我不知道为什么。我包括一个 .jsp 文件——一个垂直导航栏。我正在使用内置插件。
    • 您使用的是 JSPX,而不是 JSP。但这应该没关系。 帮助 > 检查更新 怎么样?查看 WTP 是否需要更新。服务器插件属于这一类。要排除其中一个,请尝试创建一个简单的 JSP 文件而不是 JSPX。只需<html><body><jsp:include page="include.jsp" /></body></html> 等等。
    • 事实上,对于类的更改,您应该检查“从不发布”。否则上下文会完全重新加载(需要很多时间)。如果设置为“从不”,您只需进行热插拔。
    【解决方案2】:

    我之前使用过 JRebel http://www.zeroturnaround.com/jrebel/
    它不是免费的,但有 30 天的试用期。

    【讨论】:

      猜你喜欢
      • 2021-07-09
      • 1970-01-01
      • 2015-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-18
      • 1970-01-01
      相关资源
      最近更新 更多