在Tomcat上部署war文件

问题描述:

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

只需将war文件复制到$ TOMCAT_HOME/webapps /目录中即可。 Tomcat将通过自动爆炸来部署战争文件。仅供参考 - 如果您想要,您可以直接更新到爆炸目录,这对开发很有用。

+2

这样,我就可以在服务器上运行directiory的rsync --delete? – Milhous 2008-09-27 01:13:37

您可以编辑的conf/server.xml中像这样的指向条目添加到你的战争目录

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

ELSE 您可以将.war文件复制到Tomcat的webapps目录下。

我们从不使用网络界面,不喜欢它。战争被放置在必要时编辑的webapps和server.xml中。如果你编辑server.xml,你需要反弹它,但是战争文件应该被自动选取。我们通常首先删除战争扩展的目录,这样就不会混淆组件的来源。

+0

因此,如果您将新版本的应用程序部署到Tomcat,则首先要从$ TOMCAT_HOME/webapps /目录中删除应用程序的目录,对吗? Tomcat是否会自动删除.WAR文件? – craig 2011-12-19 16:12:18

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

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

有几种方法来部署一个Tomcat web应用:

  • 拖放到$ CATALINA_HOME/webapps中,正如已经提到。
  • 使用您的构建脚本通过管理器界面(与Tomcat一起提供)自动部署。以下是两种方式:
    • for Maven:使用tomcat插件。您不需要将其包含在pom.xml中,只需发出目标mvn tomcat:deploy,该插件包含在Maven 2中。这里假定在documentation中解释了几个默认值,您可以在pom.xml中的configure行为。还有其他目标可以让你部署为分解档案
    • 蚂蚁:是这样的:
 
    <property name="manager.url" value="http://localhost:8080/manager"/> 
    <property name="manager.username" value="manager"/> 
    <property name="manager.password" value="foobar"/> 
    <!-- Task definitions --> 
    <taskdef name="deploy" classname="org.apache.catalina.ant.DeployTask"/> 
    <taskdef name="list"  classname="org.apache.catalina.ant.ListTask"/> 
    <taskdef name="reload" classname="org.apache.catalina.ant.ReloadTask"/> 
    <taskdef name="undeploy" classname="org.apache.catalina.ant.UndeployTask"/> 
    <!-- goals --> 
    <target name="install" depends="compile" description="Install application to servlet container"> 
     <deploy url="${manager.url}" 
       username="${manager.username}" 
       password="${manager.password}" 
       path="${app.path}" 
       localWar="file://${build.home}"/> 
    </target> 
    <target name="list" description="List installed applications on servlet container"> 
     <list url="${manager.url}" 
       username="${manager.username}" 
       password="${manager.password}"/> 
    </target> 
    <target name="reload" depends="compile" description="Reload application on servlet container"> 
     <reload url="${manager.url}" 
       username="${manager.username}" 
       password="${manager.password}" 
       path="${app.path}"/> 
    </target> 
    <target name="remove" description="Remove application on servlet container"> 
     <undeploy url="${manager.url}" 
       username="${manager.username}" 
       password="${manager.password}" 
       path="${app.path}"/> 
    </target> 

所有这些都需要你有一个Tomcat用户配置。它生活$CATALINA_BASE/conf/tomcat-users.xml,但既然你已经知道如何使用Web界面,我假设你知道如何配置用户和密码。

+0

嗨,我有一个类似的安装,但得到FileNotFoundException:`http:// localhost:8080 /经理/部署?路径=%2Feccount&war =文件%3A%2F%2FC%3A%5Ceccount%2Fout%2FWAR-exploded` 。尽管文件可通过网络浏览器在`file:/// C:/ eccount/out/WAR-exploded`处获得。我的tomcat版本是7.0.37。 – prayagupd 2013-08-16 12:24:17

你也可以试试这个叫做tomcat-manager的command-line script for managing tomcat。它需要Python,并通过HTTP与包含在tomcat中的管理器应用程序通信。

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

和:您可以从一个* nix的外壳像这样的东西

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