Deployment 将Web应用程序部署到正在运行的Tomcat
我想收集一些关于将web应用程序部署到运行中的Tomcat的最佳实践。不久前,我不得不描述我们的web应用程序的部署过程,这个过程看起来相当混乱 比如说,我们在WAR文件(foo.WAR)中正确配置了一个应用程序,不需要额外的配置。在这种情况下,部署过程相当简单:Deployment 将Web应用程序部署到正在运行的Tomcat,deployment,configuration,tomcat,servlets,Deployment,Configuration,Tomcat,Servlets,我想收集一些关于将web应用程序部署到运行中的Tomcat的最佳实践。不久前,我不得不描述我们的web应用程序的部署过程,这个过程看起来相当混乱 比如说,我们在WAR文件(foo.WAR)中正确配置了一个应用程序,不需要额外的配置。在这种情况下,部署过程相当简单: 将foo.war文件复制到$CATALINA_HOME/webapps目录。如果应用程序正确启动,应用程序将自动部署到$CATALINA_HOME/webapps/foo目录 要取消部署应用程序,请执行以下操作: 从$CATAL
- 将foo.war文件复制到$CATALINA_HOME/webapps目录。如果应用程序正确启动,应用程序将自动部署到$CATALINA_HOME/webapps/foo目录
- 从$CATALINA_HOME/webapps中删除foo.war文件。如果应用程序正确卸载,它将被卸载,并且$CATALINA_HOME/webapps/foo将被删除
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="/path-to-deployment-directory/foo.war">
<Parameter name="myparam" value="newvalue" override="false"/>
</Context>
如果希望“newvalue”覆盖WAR的web.xml中指定的值,请确保为参数指定override=false。这对我们来说并不明显
因此,要将应用程序部署到正在运行的Tomcat:
- 将参数值添加到foo.xml并保存文件;应用程序将自动重新部署
- 从$CATALINA_BASE/conf/[enginename]/[hostname]/目录中删除foo.xml
现在,我有以下问题:
一种解决方案是使用manager应用程序。如果您决定使用它是安全的,那么您可以轻松地部署、启动、停止和取消部署应用程序: 有一些ant任务可以帮助您完成这些任务 我猜测,但不确定,停止和启动应用程序会使它重新读取context.xml 关于第二个问题,我认为出于维护原因,最好将war文件保存在webapps目录中。关于问题(1),Tomcat非常适合将servlet部署到正在运行的服务器中。可能会担心w.r.t.安全性,或者可能是D.O.S.或资源调配方面的原因,为什么您会有单独的服务器实例 您可以灵活地使用这两种方法,但部署到已经运行的服务器通常更方便。这是servlet体系结构中的内置功能。:) 对于第(2)条,你想把战争放在什么地方也是由你自己决定的。听起来您已经用非标准(我应该说是非默认)方式配置了它。检查server.xml文件以了解服务器实例中的设置。检查属性,如
unpacwars
和autoDeploy
对于(3)和(4)以及(1,2)个问题,最好查阅Tomcat文档,了解Tomcat版本的部署模型。您应该能够使用相同的文档来确定服务器是如何配置的
请参阅Tomcat手册中的,调整您的Tomcat版本