2008-09-27 155 views

回答

11

只需將war文件複製到$ TOMCAT_HOME/webapps /目錄中即可。 Tomcat將通過自動爆炸來部署戰爭文件。僅供參考 - 如果您想要,您可以直接更新到爆炸目錄,這對開發很有用。

+2

這樣,我就可以在服務器上運行directiory的rsync --delete? – Milhous 2008-09-27 01:13:37

2

您可以編輯的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目錄下。

2

我們從不使用網絡界面,不喜歡它。戰爭被放置在必要時編輯的webapps和server.xml中。如果你編輯server.xml,你需要反彈它,但是戰爭文件應該被自動選取。我們通常首先刪除戰爭擴展的目錄,這樣就不會混淆組件的來源。

+0

因此,如果您將新版本的應用程序部署到Tomcat,則首先要從$ TOMCAT_HOME/webapps /目錄中刪除應用程序的目錄,對嗎? Tomcat是否會自動刪除.WAR文件? – craig 2011-12-19 16:12:18

1

Tomcat Client Deployer Package看起來是您需要從命令行部署到遠程服務器的部分。來自頁面:

這是一個可用於驗證,編譯,壓縮爲.WAR並將Web應用程序部署到生產或開發Tomcat服務器的軟件包。應該注意的是,該功能使用Tomcat管理器,因此目標Tomcat服務器應該正在運行。

23

有幾種方法來部署一個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

1

你也可以試試這個叫做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