是否可以在不重新启动 JSF 中的服务器的情况下更新应用程序?

Posted

技术标签:

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

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

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

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

【问题讨论】:

【参考方案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 天的试用期。

【讨论】:

以上是关于是否可以在不重新启动 JSF 中的服务器的情况下更新应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在不重新启动 Visual Studio 的情况下同时编译 32 位和 64 位配置?

nginx - 我可以在不重新启动服务器的情况下添加新的虚拟主机吗?

在不重新启动应用程序的情况下设置 Heroku 环境变量

是否可以在不重新部署的情况下更新 PhoneGap 应用程序中的 HTML/CSS/JS 文件?

Django - 在不重新启动开发服务器的情况下应用 HTML 和静态文件中的更改

如何在不重新启动的情况下更新机器人状态中的“bot.users.size”