1

该应用程序正在使用 java 的 Tomcat 服务器上运行。我不想在每次发生 Java 更改时停止服务器。构建系统严重依赖于 Shell 脚本,所以我不能使用任何 Java IDE 来进行正常的 HotSwap。

现在,还有其他方法可以热交换文件吗?

4

4 回答 4

2

为此,我在几个 java 项目中使用了 JRebel。它可以显着减少重新部署时间。

于 2013-05-24T10:26:10.697 回答
1

如果您正在寻找某种优雅的应用程序更新,您可以查看 Tomcat 的并行部署。使用该选项,您可以在不停止当前打开的会话的情况下更新应用程序。服务器将在新应用程序版本上启动新会话,而旧版本不会在旧版本上更新。

于 2013-05-24T10:25:22.660 回答
1

一种方法是使用 Tomcat 管理 Web 用户界面。您可以使用curl.

Tomcat管理操作也有Ant任务。

参考:

例子:

于 2013-05-24T10:17:10.333 回答
0

您正在寻找的是一种开发模式,它允许您在运行时将应用程序替换为新版本。这通常对开发有用,而在生产中没有实践,因此被称为“开发模式”。

请参阅如何为开发模式安装 Apache Tomcat

在更改类文件时重新启动 tomcat中也有更多相关信息?.

请参阅文档,搜索可重新加载:

reloadable
如果您希望 Catalina 监视 /WEB-INF/classes/ 和 /WEB-INF/lib 中的类的更改,请设置为 true,并在检测到更改时自动重新加载 Web 应用程序。此功能在应用程序开发期间非常有用,但需要大量运行时开销,不建议在已部署的生产应用程序中使用。这就是该属性的默认设置为 false 的原因。但是,您可以使用 Manager Web 应用程序来按需触发重新加载已部署的应用程序。

于 2013-05-24T22:08:00.967 回答