2012-05-19 33 views
3

如果我有一個WAR叫my-web-app.war,我把它部署到Tomcat的webapps/目錄,假設它正常啓動時,我可以指着我的瀏覽器訪問它:如何覆蓋的Java容器URL映射部署應用

http://localhost/my-web-app 

同樣,如果我有一個名爲EAR和my-server-app.ear我把它部署到GlassFish的domain/autodeploy/目錄,然後還假設它正常啓動時,我可以指着我的瀏覽器訪問它:

http://localhost/my-server-app 

卜如果我想保留我的WAR/EAR具有相同的名稱,但要將它部署到與這些默認值不同的URL。例如:

  • my-web-app.war部署爲http://localhost/webapp
  • my-server-app.war部署爲http://localhost/srvapp
  • my-server-app.war部署剛剛http://localhost

在其他的服務器如Apache我知道這是可能設置「虛擬目錄「等,因此http://example.com/some/long/path/to/file.html在瀏覽器中顯示爲http://example.com/file,並且想知道Tomcat/GlassFish是否允許(如果是這樣,如何)?

我問,因爲我打算附帶有他們的名字都是我的WAR /耳的版本,所以我可以看看他們在文件系統上,並立即知道它們是什麼版本,如:

  • my-web-app-3.17.2.war

,使我的用戶去http://localhost/my-web-app-3.17.2似乎有點瘋狂

回答

3

對於Tomcat有幾個這樣的方式,但最好的是採取並行部署版本標籤的優勢。

你會說出你的戰爭是這樣的:

webapp##my-web-app-3.17.2.war 

和##是作爲版本標籤並行部署處理後,它將被部署到

/webapp 

什麼。請參閱docs瞭解更多詳情。

+0

感謝@馬克 - 怎麼樣的GlassFish?在搜索「並行部署」時,我沒有看到文檔中出現任何內容,因此它必須是Tomcat術語... – IAmYourFaja

+0

對不起,對GlassFish沒有任何意見。我不會密切關注該項目在做什麼。 –

1

如果你有,你可以設置上下文根在文件application.xml中

對於每一個戰爭中EAR你可以設置一個上下文根