我刚将我的maven web应用程序打包成war文件,将其上传到安装了tomcat环境的远程服务器。在解压缩war文件并将所有文件放在/webapps/ROOT
目录中之后,我运行bin/startup.sh
来启动tomcat。
这项工作正常,但当我打算在服务器上更改我的网络应用程序并重新部署时,我不知道如何无缝地,也就是说,不允许使用我网站的用户丢失任何请求。
有人能给我一些想法吗?非常感谢!
答案 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问题一丝不苟