首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在不重启整个服务的情况下更新Tomcat webapp?

如何在不重启整个服务的情况下更新Tomcat webapp?
EN

Stack Overflow用户
提问于 2011-07-05 21:34:58
回答 3查看 133.6K关注 0票数 100

我是Tomcat的新手。我们有一台运行着大约5个应用程序的开发机器。即使它是dev,我们的客户在测试过程中也会大量使用它。

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

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

有没有更好的方法来做这件事?我的意思是,有没有办法只重新加载更改过的,而不是重新加载开发机器上的所有内容?

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-05 22:25:06

你试过使用Tomcat's Manager application吗?它允许您取消部署/部署war文件,而无需关闭Tomcat。

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

如果您在Windows上运行Tomcat,则可能需要对上下文执行configure操作以不锁定各种文件。

如果你绝对不能有任何停机时间,你可能想看看Tomcat 7's Parallel deployments你可以用相同的上下文路径同时部署多个版本的web应用程序。用于将请求与上下文版本进行匹配的规则如下:

  • 如果请求中没有会话信息,请使用最新版本。
  • 如果请求中存在会话信息,请检查每个版本的会话管理器中是否有匹配的会话,如果找到,则使用该版本。
  • 如果请求中存在会话信息,但找不到匹配的会话,请使用最新版本。
票数 65
EN

Stack Overflow用户

发布于 2015-09-03 13:05:30

有多种简单的方法。

  1. 只需触摸任何any应用的web.xml即可。

触摸/usr/share/tomcat/webapps//WEB-INF/web.xml

您还可以更新WEB-INF/lib中的特定jar文件,然后访问web.xml,而不是构建整个war文件并再次部署它。

Tomcat删除webapps /_WEB_

  1. 目录,tomcat将在5秒内开始部署war (假设您的war文件仍然存在于webapps中) folder).
  2. Generally用新版本覆盖war文件会被tomcat自动重新部署。如果没有,您可以通过已展开的“目录”来访问webapps文件夹

中的web.xml,如above.

票数 33
EN

Stack Overflow用户

发布于 2014-07-17 02:02:24

在apache tomcat的conf目录中,您可以找到context.xml文件。在编辑标记中为<Context reloadable="true">。这应该可以解决问题,并且您不需要重新启动服务器

票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6583502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档