2010-03-18 59 views
1

我基本上希望能夠將同一個EAR文件的多個版本部署到同一個服務器(Glassfish實例?),並且每個版本都有一個唯一路徑將它們分開。將EAR的多個實例(代表版本)部署到Glassfish

從我對此的閱讀看來,多個EAR部署到Web服務器名稱空間的根目錄,以便它們可以共存(如果它們沒有衝突WAR的上下文根目錄)。

在我的情況下,我寧願讓它代替「/」下的所有內容,我希望能夠標記給定的EAR文件構建以始終在給定路徑下部署,例如「/ foo-20100319 「或」/ foo-CUSTOMER-20010101「。只需重命名一個WAR文件即可輕鬆完成此操作。我不需要也不想讓他們互相打擾。

我的理解是,這個重映射不在application.xml文件的範圍內,所以我發現http://docs.sun.com/app/docs/doc/820-7693/beayr?a=view說我可以指定web-uri和context-root,但我不確定我想要什麼可以在Glassfish中指定。

我該如何解決這個問題?我完全控制了構建過程。

(我發現Deploying multiple Java web apps to Glassfish in one go,但我不確定如何將它應用到我需要的)。

回答

2

The application.xml allows you to map a web app that is enclosed in an ear to the context root of your choice。您也可以使用sun-application.xml來做到這一點。

由於您完全可以控制構建過程,因此您可以選擇。您可能想要read about the --deploymentplan option of the deploy subcommand of GlassFish's asadmin utility。它允許您在部署處理之前將其他文件混合到已部署的存檔中...因此,您可以創建一個「通用」ear文件和一些較短的部署計劃文件,這些文件混合使用sun-application.xml文件這是創建自定義部署所必需的。

+0

啊,所以不要告訴Glassfish爲webapp透明地添加一個像/ foo-1235這樣的新根目錄,而是建議我只是在部署描述符中告訴它所有web應用程序都有一個/ foo-1235/foo路徑。我會盡力。 –

+0

沒有辦法告訴Glassfish爲ear或嵌入到除部署描述符以外的耳朵的webapp添加一個contextroot。我打開了一個可能捕捉你想法的增強功​​能。如果我誤解了你的意圖,請評估並澄清它:https://glassfish.dev.java.net/issues/show_bug.cgi?id=11710 – vkraemer

+0

它看起來像我所需要的。我們即將重寫我們的部署方案,所以我會考慮到這一點。 –