在Tomcat上部署war文件

Posted

技术标签:

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

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

【问题讨论】:

【参考方案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

【讨论】:

以上是关于在Tomcat上部署war文件的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat 在所有新部署的 WAR 文件上报告 404 错误?

在 tomcat 上部署 Spring Boot WAR 文件显示错误 404

Spring Boot War 文件部署在 Tomcat 上

在apache tomcat上部署war文件时未加载CSS和JS文件

在 LAMP 上部署 WAR 文件

CSDN博客——在虚拟机服务器上的tomcat部署war包操作步骤