如果tomcat的webapps目录中有多个应用程序,如何手动启动和停止apache-tomcat中的应用程序?

时间:2015-07-24 07:26:24

标签: java tomcat

实际上我在tomcat的webapps目录中有两个应用程序

  webapps/hello_web1 and
  webapps/hello_web2

我想通过使用命令行(或者除了使用tomcat manager gui之外的任何其他方式)以可分离的方式启动和停止这些应用程序,以便我可以在我的程序中手动实现启动和停止功能。

如果有可能,请建议我,如果在tomcat中不可能,请建议使用可能的网络服务器。

2 个答案:

答案 0 :(得分:3)

最好的方法是使用CURL从Tomcat / manager

中定位所需的命令
curl --user user:pass http://localhost:8080/manager/text/<your command>?path=/<your web appl> 

在这里你可以找到命令列表 https://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html

在你的情况下

  

启动应用程序   http://localhost:8080/manager/text/start?path=/yourWebAppl

     

停止申请   http://localhost:8080/manager/text/stop?path=/yourWebAppl

     

重启应用程序   http://localhost:8080/manager/text/reload?path=/yourWebAppl

答案 1 :(得分:2)

在Apache Tomcat中部署Web应用程序有多种方法。一个是目录<TOMCATDIR>/conf/Catalina/localhost中的XML部署描述符文件。

此类文件的内容是可能如下所示的配置(例如.webapp1.xml):

<?xml version='1.0' encoding='utf-8'?>
<Context displayName="webapp1"
         override="true"
         path="/webapp1"
         docBase="${catalina.base}/webapps/webapp1">

         ... some context configuration ...

</Context>

如果Tomcat在此目录中找到XML文件,它将尝试部署该文件中定义的上下文。如果从该目录中删除该文件,Tomcat将取消部署Web应用程序上下文。

所有这一切都可以通过命令行或shell脚本来完成。

关于您的问题:您可以在此目录中放置两个上下文文件。每个网络应用程序一个。要部署一个只需将文件移入和取消部署,只需将其移出目录即可。

# deployment
&> cd "<TOMCATPATH>/conf/Catalina/"
&> mv webapp1.xml localhost/

# undeploy
&> cd "<TOMCATPATH>/conf/Catalina/localhost"
&> mv webapp1.xml ../

有关<Context...></Context>元素参考的更多详细信息:The Context Container Doc Page