2013-01-14 49 views
13

我已經通過描述如何配置給定WAR(比如說abc.war)作爲tomcat中的默認web-app的線程。在tomcat 7中設置默認應用程序

要麼

的abc.war重命名爲ROOT.war

創建$上下文的ROOT.xml {tomcat.home}/CONF /卡塔利娜/ localhost with path =「」,docBase設置爲戰爭的相對/絕對路徑(保持webapps外部的abc.war 以避免雙重部署)。

這兩種解決方案都會在webapps(appBase)目錄中產生ROOT.war。不過,我想在webapps中保留WAR名稱(abc.war),並且沒有單獨的ROOT.war來實現此目的。

在我的情況下工作的一種解決方案是在server.xml中的<主機>標記下添加上下文。但根據Tomcat 7 Doc,不建議直接在server.xml中添加上下文。

有人可以指點我嗎?

謝謝。

+0

第二種方法 – TheWhiteRabbit

+0

我繼續在server.xml的Host標記內使用。 –

+1

http://wiki.apache.org/tomcat/HowTo#How_do_I_make_my_web_application_be_the_Tomcat_default_application.3F參考這個你可以得到完整的答案 – madhu

回答

19

詳細的方法

第一種方法:

第一關閉你的tomcat [從bin目錄(sh shutdown.sh),那麼你 必須刪除你的Tomcat Web應用程序的所有內容文件夾(rm -fr *)然後 重命名你的WAR文件到ROOT.war終於開始你的tomcat [從th Ëbin目錄(sh startup.sh

第二種方法:

離開CATALINA_BASE/webapps WAR文件,在其原來的名字 - 關閉 自動部署和deployOnStartup在服務器的Host元素。 xml文件。 顯式定義server.xml中的所有應用程序上下文,同時指定路徑 和docBase。您必須這樣做,因爲您已禁用所有Tomcat 自動部署機制,並且Tomcat不會再部署您的應用程序 ,除非它在server.xml中找到它們的上下文。

注:

,這最後的方法也意味着,爲了進行任何更改任何 應用程序,你必須停止和重新啓動Tomcat。

三方法:CATALINA_BASE/webapps

將WAR文件(必須是外 以防止重複部署)。 - 將名爲ROOT.xml的上下文文件放入
CATALINA_BASE/conf//。這個上下文文件中的單個元素必須有一個 docBase屬性指向你的war文件的位置。路徑元素 不應該被設置 - 它來源於.xml文件的名稱,在這個 的情況下ROOT.xml。有關詳細信息,請參閱上述上下文容器

+1

請記住,第三種方法war文件不會部署到webapps文件夾,假設你已經在server.xml中保留了默認值。另外,如果你有myApp.war並且你想讓上下文根目錄爲/ foo/bar,你可以命名你的xml文件foo#bar.xml – Striker

+1

我試過了你的第三個解決方案,但它對我來說並不合適。我的應用程序名稱是'springExample',我把它放在webapps DIR之外的'C:\ Tomcat \ springExample.war'下面。然後我在'C:\ Tomcat \ conf \ Catalina \ localhost \ ROOT.xml'中創建了一個'ROOT.xml'文件。ROOT.xml的內容是<?xml version =「1.0」?> '。並重新啓動服務器。請告訴我我在哪裏做錯了。 –

+1

我設法通過將'docBase屬性值更改爲「來實現它。但是你現在可以告訴我Tomcat是在提取這個'war'文件嗎?它可以通過'Tomcat應用程序管理器Web界面'進行管理。感謝... –

相關問題