2011-05-10 78 views
1

Tomcat安裝在C:\ tomcat7 \上,但我想在C:\ myapp \ xyz中部署.war文件。例如,我可能有C:\ myapps \ xyz \ MyApp.war,我應該能夠通過路徑http://localhost:8080/MyApp訪問它。如何在Tomcat 7中創建虛擬目錄?

我想這個追加到c的底部:\ tomcat7 \的conf \ server.xml中

 <Host 
      name="myapp" 
      appBase="c:\myapps\xyz\" 
      unpackWARs="true" 
      autoDeploy="true"> 
     </Host> 
    </Engine> 
    </Service> 
</Server> 

這似乎不是,因爲我沒有看到MyApp的在管理控制檯中列出的工作,雖然和我無法擊中網址。我還需要做什麼?

另外,稍微不相關,但是,我怎麼能沒有與上下文名稱或URL路徑綁定的戰爭文件的名稱?例如,我想要http://localhost/coolName指向C:\ myapps \ xyz \ MyApp.war。

回答

0

您的權利在於您要設置Host條目的appBase參數。這裏是討論如何才能在Windows下前一個問題:Apache Tomcat under Windows: Changing webapps default directory

至於如何改變應用程序的名稱添加一個context.xml中的META-INF目錄:Separating war application name from war file name

+0

我仍然無法使用我的初始文章中指定的主機條目查看我的應用程序。有可能我只是不知道在這裏使用的默認URL,因爲我看到我的代碼正在初始化,並且看到它生成日誌,但是當我使用URL http:// localhost:8080/MyApp的 – Franky

2

不幸的是,這樣的Tomcat加載按文件名戰爭是一個棘手的限制。

我使用稍微不同的&特定於操作系統的方法:「符號鏈接」。這不是一個直接的答案,但可以幫你解決問題。

注意事項:

  1. 我使用Linux,但這是
    也可以在Windows Vista &
    Windows 7的
  2. 使用戰爭使用這種方法仍然是尷尬。 大戰是zip文件,所以最好把 解壓到
    版本命名的文件夾。

解決方案:

創建從安裝MyApps文件夾中的符號鏈接(如文件系統中的虛擬目錄)到webapps文件夾中。

  • 這使得「coolName」, 「coolName-v2」等等
  • 每個web應用 可能被保存在 不同的地方在文件系統中
  • 您可以輕鬆地「回滾」或只是通過刪除並重新添加符號鏈接到不同的目標(確保「停止」「升級」而切換的webapp)

的Linux:

ln -s target_name link_name 

VISTA/Windows 7中:

mklink link_name target_name 

這樣,你仍然可以使用C:\ tomcat7 \的webapps \,但指定符號鏈接如下:

mklink c:\tomcat7\webapps\coolName\ c:\myapps\xyz\webapp123\ 

(注:對於戰爭,你需要先解壓戰)

HTH