如何在tomcat中无缝重新部署战争?

时间:2013-11-20 03:28:09

标签: java tomcat web-applications redeploy

我刚将我的maven web应用程序打包成war文件,将其上传到安装了tomcat环境的远程服务器。在解压缩war文件并将所有文件放在/webapps/ROOT目录中之后,我运行bin/startup.sh来启动tomcat。

这项工作正常,但当我打算在服务器上更改我的网络应用程序并重新部署时,我不知道如何无缝地,也就是说,不允许使用我网站的用户丢失任何请求

有人能给我一些想法吗?非常感谢!

2 个答案:

答案 0 :(得分:0)

即使是使用浏览器的远程计算机,您也可以随时使用tomcat附带的管理器应用程序来部署战争,而不会使网站崩溃。

http://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html#Deploy_A_New_Application_Remotely

答案 1 :(得分:0)

您可以使用reverse proxy作为您网站的门。在将“第二次”战争部署到Tomcat之后,您可以更改反向代理的配置并重新加载它。反向代理的重新加载速度非常快,因此它喜欢Java Web应用程序的“无缝”重新部署。重新加载反向代理后,您可以安全地取消部署“第一次”应用程序之战。

如果应用程序需要时间进行初始化(例如:包括ORM,Spring Framework ......),这种重新部署方式尤其有用。

关于在同一时间使用多场战争的担忧很少:

1)同时在Tomcat上运行两个应用程序(虽然是临时的),确保并发执行没有任何危险。例如:预定作业

2)您需要确认Tomcat上有足够的内存来存放两个Web应用程序,否则Tomcat可能会挂起。

3)对Java.lang.OutOfMemory:PermGen Space问题一丝不苟