一尘不染

如何在不重新启动整个服务的情况下更新Tomcat Web应用程序?

tomcat

我是新来的Tomcat。我们有一台运行约5个应用程序的开发机。即使是开发人员,在测试过程中我们的客户仍在大量使用它。

因此,说我们需要对一个类文件进行一些小的更改。现在,我们必须关闭Tomcat(影响其他四个应用程序),删除WAR文件(和Web应用程序目录),重新部署新WAR文件并重新启动Tomcat

当然,这使一些人感到不安,因为它破坏了所有应用程序的所有登录会话。

有一个更好的方法吗?我的意思是,有没有办法只重新加载已更改的 CLASS ,而不是重新加载开发机器上的所有内容?

谢谢。


阅读 804

收藏
2020-06-16

共1个答案

一尘不染

您是否尝试过使用Tomcat的Manager应用程序?它允许您在不关闭Tomcat的情况下取消部署/部署war文件。

如果您不想使用Manager应用程序,还可以从webapps目录中删除war文件,Tomcat将在短时间后取消部署该应用程序。然后,您可以将war文件复制回该目录,Tomcat将部署war文件。

如果在Windows上运行Tomcat,则可能需要将上下文配置为不锁定各种文件。

如果您绝对不能有任何停机时间,则可能需要查看Tomcat
7的并行部署。

您可以同时部署具有相同上下文路径的多个版本的Web应用程序。用于将请求匹配到上下文版本的规则如下:

  • 如果请求中没有会话信息,请使用最新版本。
  • 如果请求中存在会话信息,请检查每个版本的会话管理器以查找匹配的会话,如果找到一个,则使用该版本。
  • 如果请求中存在会话信息,但找不到匹配的会话,请使用最新版本。
2020-06-16