比方說,我希望讓我的開發人員將他們war
文件上傳到Web應用程序(不是應用程序服務器本身)對我們的內聯網運行,是Web應用程序將隨後運行這些戰爭,如果他們單獨部署在我們的J2EE容器中的應用程序。是否有可能在沒有單獨的J2EE容器部署的情況下虛擬化war文件執行?
換句話說,我們實際上並沒有部署wars
作爲容器單獨的應用程序 - 它們只運行並排側這一個Web應用程序,其作用類似於一個J2EE容器內。
這可能嗎?
類似於war
虛擬化應用程序?
比方說,我希望讓我的開發人員將他們war
文件上傳到Web應用程序(不是應用程序服務器本身)對我們的內聯網運行,是Web應用程序將隨後運行這些戰爭,如果他們單獨部署在我們的J2EE容器中的應用程序。是否有可能在沒有單獨的J2EE容器部署的情況下虛擬化war文件執行?
換句話說,我們實際上並沒有部署wars
作爲容器單獨的應用程序 - 它們只運行並排側這一個Web應用程序,其作用類似於一個J2EE容器內。
這可能嗎?
類似於war
虛擬化應用程序?
您可以開始創建ClassLoader
,展開.war
,加載類並將請求發送到您的應用程序到正確的子Web應用程序。這看起來像重新發明輪子(考慮到應用服務器已經這樣做),並且可能非常複雜。
另一方面,這與portlets
的工作方式看起來非常相似。 Portlet打包成.war
文件,然後由門戶使用。例如,在Liferay門戶中,您可以從liferay門戶(而不是應用程序服務器本身)上載Portlet .war
。然後,Liferay將把上傳的.war
文件放在應用的自動部署目錄中。服務器,然後將像普通的Web應用程序一樣部署。然後是從入口向正確的Portlet Web應用程序發送請求的Portlet橋,等等。這可能值得仔細看看。
我不知道你的要求,但我會明確地嘗試保持簡單,因爲這樣的東西可能會變得非常複雜。但是,你可以:
.war
.war
和web.xml
,以確保背景是一樣的東西/ParentApp/ChildApp
.war
到自動部署文件夾,讓應用程序。服務器部署它這將提供您可以從您的父級webapp部署子webapp的錯覺。
你有什麼特別的原因讓你需要他們去跑另一場戰爭的背景嗎?聽起來就像你需要做什麼來實現你的目標 - 如果你在戰爭中運行它可能是不可能的 - 構建一場戰爭,然後採取他們上傳的戰爭,並使用API部署Web服務器的戰爭暴露部署戰爭,從而讓它作爲頂級的網絡應用程序運行。我不認爲有任何其他的方式來做到這一點。
這很好。你真的瞭解你的東西。非常感謝。 – Smith 2010-04-02 06:01:14