是否可以在不重新启动 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 - 我可以在不重新启动服务器的情况下添加新的虚拟主机吗?
是否可以在不重新部署的情况下更新 PhoneGap 应用程序中的 HTML/CSS/JS 文件?