2012-11-08 116 views
1

我們重命名了Apple MDM使用的上下文根目錄,現在需要向已與註冊的設備向後兼容。 我們正在運行JBoss一個應用程序的多個上下文根目錄

我的第一次嘗試只是添加了第二個模塊條目到application.xml,並且有一個新的上下文根,但是是相同的war文件。我沒有工作,除非我用一個新名字製作了戰爭文件的副本。我真的不喜歡這個解決方案,雖然它的工作。

相反,我嘗試添加一個閥到根應用程序,然後將舊的上下文根重定向到一個新的。這也工作得很好,直到設備發佈POST,然後發佈的二進制內容丟失。
該解決方案的好處是我們可以建立一個新的上下文根,爲處理Android和Windows Phone的MDM做好準備。

這可以用一個前進來完成,它應該如何實現?

回答

2

在我們公司,我們用代理來解決這些問題,以便客戶端不直接訪問JBoss服務器,而是直接訪問重定向到JBoss的代理。我們使用mod_proxy的Apache Web服務器。

所以使用mod_proxy爲Apache

,你會對其進行設置:

# for the newcontext 
ProxyPass /newcontext http://jbosserver.com/newcontext 
ProxyPassReverse /newcontext http://jbossserver.com/newcontex 
# for the oldcontext 
ProxyPass /oldcontext http://jbosserver.com/newcontext 
ProxyPassReverse /oldcontext http://jbosserver.com/newcontext 

因此,如果代理的名字是apacheserver.com,你可以訪問該服務以: http://apacheserver.com/newcontexthttp://apacheserver.com/oldcontext

這種體系結構的另一個優點是它可以提供額外的安全性,因爲客戶端不能直接訪問網絡服務器。當然,你不僅僅侷限於一個上下文,你可以在apache中創建儘可能多的數據。

我希望這會有所幫助。

+0

感謝託尼爲您的偉大的描述。我會看看你的建議。這將取決於我們是否能夠將代理打包到我們的安裝程序中,以便爲我們的客戶透明化。我不認爲這應該是一個問題。 – homaxto

+0

那麼,我們使用apache,這是一個外部代理,它不能嵌入到Java應用程序。但是如果你不想使用apache,你可以在同一個ear文件中創建一個打包成war的簡單servlet(可以通過舊上下文訪問),它只是將調用重定向到應用程序戰爭的上下文。 – Toni

相關問題