【问题标题】:Deployment of war file on Tomcat在Tomcat上部署war文件
【发布时间】:2010-09-13 15:23:23
【问题描述】:

有没有办法在 Tomcat 服务器上部署给定的战争文件?我想在不使用网络界面的情况下执行此操作。

【问题讨论】:

    标签: java linux tomcat deployment release-management


    【解决方案1】:

    有几种方法可以部署 Tomcat webapp:

    • 如前所述,进入 $CATALINA_HOME/webapps。
    • 使用构建脚本通过管理器界面(Tomcat 附带)自动部署。这里有两种方式
      • 对于 Maven:使用 tomcat 插件。您不需要将它包含在pom.xml 中,只需发出目标mvn tomcat:deploy,该插件包含在 Maven 2 中。这假设在 documentation 中解释了几个默认值,您可以在 configure @ 中的行为987654325@。还有其他目标可以让您部署为展开的存档
      • 对于 Ant:类似这样:
    目标> 目标> 目标> 目标>

    所有这些都需要您拥有 Tomcat 用户配置。它位于$CATALINA_BASE/conf/tomcat-users.xml,但由于您已经知道如何使用网络界面,我假设您知道如何配置用户和密码。

    【讨论】:

    • 嗨,我有一个类似的安装 但我得到 FileNotFoundException :http://localhost:8080/manager/deploy?path=%2Feccount&war=file%3A%2F%2FC%3A%5Ceccount%2Fout%2FWAR-exploded。虽然文件可通过网络浏览器在file:///C:/eccount/out/WAR-exploded 获得。我的tomcat版本是7.0.37。
    【解决方案2】:

    只需将 war 文件复制到 $TOMCAT_HOME/webapps/ 目录即可。 Tomcat 将通过自动分解来部署 war 文件。仅供参考 - 如果您愿意,可以直接对展开的目录进行更新,这对开发很有用。

    【讨论】:

    • 那么,我可以在服务器上的目录上运行 rsync --delete 吗?
    • 如果我想手动部署一个已经存在的war文件怎么办? (不使用自动部署功能)
    【解决方案3】:

    我们从不使用网络界面,不喜欢它。战争被丢弃在 webapps 和 server.xml 中,根据需要进行编辑。如果您编辑 server.xml,则需要将其退回,但应自动获取 war 文件。我们通常先删除从战争中扩展的目录,这样就不会混淆组件的来源。

    【讨论】:

    • 因此,如果您将应用程序的新版本部署到 Tomcat,您首先要从 $TOMCAT_HOME/webapps/ 目录中删除应用程序的目录,对吗? Tomcat 会自动删除 .WAR 文件吗?
    【解决方案4】:

    您可以编辑 conf/server.xml 并添加一个像这样指向您的 war 目录的条目

        <Context path="/strutsDisplayTag" 
            reloadable="true" 
            docBase="C:\work\learn\jsp\strutsDisplayTag" 
            workDir="C:\work\learn\jsp\strutsDisplayTag\work" />
    

    否则 你可以将你的 .WAR 文件复制到 tomcat 的 webapps 目录中。

    【讨论】:

      【解决方案5】:

      Tomcat Client Deployer Package 看起来是您需要从命令行部署到远程服务器的内容。从页面:

      这是一个包,可用于验证、编译、压缩为 .WAR,并将 Web 应用程序部署到生产或开发 Tomcat 服务器。需要注意的是,此功能使用 Tomcat 管理器,因此目标 Tomcat 服务器应该正在运行。

      【讨论】:

        【解决方案6】:

        你也可以试试这个叫做tomcat-manager的command-line script for managing tomcat。它需要 Python,并通过 HTTP 与包含在 tomcat 中的管理器应用程序对话。您可以从 *nix shell 执行以下操作:

        $ tomcat-manager --user=admin --password=newenglandclamchowder \
        > http://localhost:8080/manager/ stop /myapp
        

        和:

        $ tomcat-manager --user=admin --password=newenglandclamchowder \
        > http://localhost:8080/manager deploy /myapp ~/src/myapp/myapp.war
        

        【讨论】:

          猜你喜欢
          • 2012-07-29
          • 2015-09-03
          • 1970-01-01
          • 2016-08-23
          • 2015-05-08
          • 1970-01-01
          • 2017-11-08
          • 2020-12-03
          相关资源
          最近更新 更多