2014-06-23 56 views
0

在我們的應用程序中,我們在同一個tomcat中部署了2個不同的war文件。在我們的例子中,我們在會話中存儲了兩個WAR都需要的屬性,爲此我們應該能夠從其他上下文(其他戰爭)訪問一個上下文(一個戰爭)的會話。跨WAR分享會話

爲了實現這一目標,我們在tomcat中啓用了交叉上下文,並通過將它們存儲在每個上下文中的地圖中來共享會話。但是這種方法變得複雜而繁瑣,因此會話管理變得非常困難。而且,如果我們選擇Tomcat集羣,那麼這種方法就失敗了。

所以任何一個可以提出一個更好的方式,可以部署在一個Tomcat或多個Tomcat節點

+0

不建議共享HttpSession;但您可以共享其他對象。例如,您可以通過JNDI註冊一個對象,並在您的所有應用程序中訪問同一個對象(數據庫使用它來共享連接)。 – Khinsu

回答

0

您可以創建一個簡單的Web服務來存儲會話相關的信息多個應用程序共享會話。

就像在APP1上登錄時創建一個會話一樣,該信息將存儲在web服務上,該服務將持有信息,直到APP1註銷爲止。

同樣的信息將被APP2訪問,直到APP1會話在那裏。

Webservice可以是一個簡單的REST API,它將包含JSON格式的信息。