【问题标题】:How to deploy war file to tomcat using command prompt?如何使用命令提示符将war文件部署到tomcat?
【发布时间】:2014-09-21 16:11:54
【问题描述】:

我创建了一个war文件并放入tomcat/webapps。如何使用命令提示符将war文件部署到tomcat?

【问题讨论】:

    标签: tomcat deployment command war


    【解决方案1】:

    此页面上较早的答案是正确的,您可以将 WAR 文件复制/移动到位并重新启动 tomcat,但他们忽略了一些事情:如果有的话,您必须删除之前爆炸的资产(从之前部署的 WAR 文件中)存在。

    # My tomcat webapps are found at /var/lib/tomcat6/webapps
    # The application I wish to deploy is the main (ROOT) application
    webapps_dir=/var/lib/tomcat6/webapps
    # Remove existing assets (if any)
    rm -rf $webapps_dir/ROOT
    # Copy WAR file into place
    cp example_dir/ROOT.war $webapps_dir
    # Restart tomcat
    service tomcat6 restart
    

    为自己的系统修改以下内容:

    • 已编译的 WAR 文件的路径(待部署)
    • tomcat webapps 文件的路径
    • 如何重新启动 tomcat(即,如果未作为服务安装)

    【讨论】:

      【解决方案2】:

      首先在tomcat-users.xml中为角色manager-script添加一个用户角色。

      然后取消部署您可以使用的当前应用程序

      wget http://username:password@localhost:portnumber/manager/text/undeploy?path=/appname -O - -q
      

      部署

      wget http://username:password@localhost:portnumber/manager/text/deploy?path=/appname&war=file:/warpath -O - -q
      

      【讨论】:

      • 我不断收到“-O: command not found”,但如果我用“”包裹了 url 部分,那么我没有问题,所以对于其他人,我建议这样做。
      【解决方案3】:

      您可以使用 wgetcurl 从命令行部署应用程序。

      使用 wget:

      wget --http-user=tomcat --http-password=tomcat "http://localhost:8080/manager/text/deploy?war=file:/some/path/SomeWar.war&path=/SomeWar" -O -
      

      但在我使用 wget 的情况下,我收到了这个错误: “无法在上下文路径部署应用程序...”

      所以我用 curl 解决了:

      curl -v -u user:password -T app.war 'http://tomcathost/manager/text/deploy?path=/my-app-path&update=true'
      

      【讨论】:

      • 这会取消部署任何现有版本吗?
      • 我需要使用-X PUT 专门指定 PUT。除此之外,它完美无缺。
      【解决方案4】:

      为此,我们需要将 WAR 文件放在 Tomcat CATALINA_HOME/WEBAPPS/ 目录中。以后Tomcat会自动部署和分解这个WAR文件。

      • 将命令提示符的活动目录更改为您的 WAR 文件位置
      • CATALINA_HOME变量设置为Tomcat目录的路径
      • 复制 WAR 文件

      在命令行中从当前目录复制WAR文件的语法:

      copy <your-war-file-name> %CATALINA_HOME%\<your-appBase-name>
      

      例子:

      cd C:\MY_WAR_FILE_LOCATION
      set CATALINA_HOME="C:\Program Files\Apache\apache-tomcat-7.0.42"
      copy MYWARFILE.WAR %CATALINA_HOME%\webapps
      

      注意:如果在 Tomcat 运行时将 WAR 文件复制到 webapps 目录中,它将无法被识别。只需重新启动 Tomcat 即可开始使用 Web 应用程序。

      【讨论】:

        【解决方案5】:

        您可以使用 tomcat manager 应用程序部署 war 文件,http://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html#Deploy_A_New_Application_Remotely

        如果你想从命令提示符,那么据我所知

        • 停止 tomcat (catalina.bat stop)
        • 将战争复制到 webapp
        • 重启tomcat(catalina.bat运行)

        【讨论】:

          【解决方案6】:

          使用httpie,您可以上传和部署战争。

          http --auth user:pass PUT http://<tomcatURL>/manager/text/deploy?path=/ < ROOT.war
          

          【讨论】:

            【解决方案7】:

            由于您已经将war文件复制到tomcat/webapps,您只需重启tomcat即可部署war文件。

            命令提示符:

            set tomcatPath=D:\apache-tomcat-7.0.50
            call "%tomcatPath%"\bin\catalina.bat **stop**
            sleep -m 3000 
            call "%tomcatPath%"\bin\catalina.bat jpda **start**
            

            【讨论】:

              【解决方案8】:

              我试过了,效果很好

              curl --request PUT --upload-file webapp.war --basic --user user:password \
                http://hostname:port/manager/text/deploy?path=/web_path\&update=true
              

              它基于已发布的 tomcat 管理器 API: https://tomcat.apache.org/tomcat-9.0-doc/manager-howto.html#Deploy_A_New_Application_Archive_(WAR)_Remotely

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2013-02-05
                • 2011-09-02
                • 2013-03-27
                • 2016-08-23
                • 2012-05-08
                • 2018-07-25
                • 1970-01-01
                相关资源
                最近更新 更多