我目前正在测试大量的web服务。我想尽快通过终端命令部署和取消部署到tomcat应用服务器。对于我需要部署的大量web服务来说,使用HTML GUI是不合理的。有人能帮助我,如何通过终端命令部署吗?
此外,我正在编写一个ash脚本,它可以自动执行部署过程,因此,如果有人能给我一些指导的话,那就太好了。
理想情况下,我希望在命令行上执行以下操作:
TOMCAT—参数指定WAR文件的路径—参数2—指定某种配置文件

最佳答案

首先,您需要确保tomcat-user.xml配置了正确的用户和角色。最低角色配置为“admin,manager script”:
找出tomcat的安装位置。您可以在bash中执行此操作:catalina version
导航到CATALINA_HOME config目录,该目录显示在上一个命令的输出中。

cd /usr/local/Cellar/tomcat/8.0.22/libexec/conf

注意:在我的示例中,我使用自制程序安装tomcat 8,用命令行输出中显示的内容替换此路径。
验证server.xml是否包含一个UserDatabase资源(如果它没有添加它):
  <GlobalNamingResources>
      <Resource name="UserDatabase" auth="Container"
          type="org.apache.catalina.UserDatabase"
          description="User database that can be updated and saved"
          factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
          pathname="conf/tomcat-users.xml" />
  </GlobalNamingResources>

默认情况下,tomcat使用内存中的数据库来存储用户和角色。这是在conf/server.xml中配置的。并将用户和角色声明委托给conf/tomcat-users.xml文件。有关详细信息,请参见:http://tomcat.apache.org/tomcat-8.0-doc/realm-howto.html#UserDatabaseRealm
然后验证CONFIG/USER TMECAT.XML是否存在,并且看起来像这样:
  <tomcat-users xmlns="http://tomcat.apache.org/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0" xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd">
     <role rolename="admin"/>
     <role rolename="manager-script"/>
     <user username="admin" roles="admin,manager-script" password="admin" />
  </tomcat-users>

现在,你准备好发动战争了!
有两种方法。。。
使用wget:
wget是一个漂亮的工具,允许您通过命令行执行http请求。我建议使用homebrew这样的包管理器安装它,否则,您可以使用此wget install guide进行安装。
首先重新启动服务器以获取可能已完成的任何配置更改。catalina stop,然后catalina start,将从bash中完成这个技巧。
*注意:当使用wget开始向tomcat部署war时,需要先启动tomcat。
现在执行以下命令:
wget --http-user=admin --http-password=admin  "http://localhost:8080/manager/text/deploy?war=file:/Users/yourusername/app/target/APP-1.0.0.war&path=/app"

现在转到http://localhost:8080/app/查看您的webapp。
笔记:
等待几秒钟,让http请求发送并完全部署war。(有时需要一段时间)。
您可能会尝试使用主目录快捷方式(如file:~/app/target/APP-1.0.0.war)引用war文件,但这不起作用。
要取消部署战争,只需在wget命令中将deploy替换为undeploy
使用Tomcat Maven插件:
如果您有源代码,就可以使用tomcat7-maven-plugin轻松构建和部署war。注意:在我写这篇文章的时候,没有tomcat8 maven插件;tomcat-7-maven-plugin对tomcat8工作得很好。
将插件添加到pom.xml:
<plugin>
  <groupId>org.apache.tomcat.maven</groupId>
  <artifactId>tomcat7-maven-plugin</artifactId>
  <version>${version.tomcat.maven.plugin}</version>
  <configuration>
    <path>/${project.build.finalName}</path>
    <configurationDir>${env.CATALINA_HOME}</configurationDir>
    <additionalConfigFilesDir>${env.CATALINA_HOME}/conf</additionalConfigFilesDir>
    <uriEncoding>${project.build.sourceEncoding}</uriEncoding>
  </configuration>
</plugin>

导航到pom.xml所在的项目根目录,并运行以下命令:mvn tomcat7:run

关于bash - 如何通过终端命令将Web应用程序部署到tomcat应用程序服务器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19276753/

10-16 20:37