2014-02-25 74 views
0

我有一個Vaadin v6應用程序,它使用嵌入組件顯示來自另一個應用程序(本例中爲JPivot)的JSP頁面。這兩個應用程序都在同一個應用程序服務器(Tomcat)中運行。我需要兩個應用程序進行通信,我試圖通過使用會話屬性來做到這一點。但是,每個應用程序都有自己的會話,所以對其他屬性一無所知。我的問題是如何使這些應用程序在不使用數據庫或外部文件的情況下進行通信?它可以是會話屬性以外的其他解決方案。在Vaadin和嵌入式應用程序之間共享會話變量

+0

在兩個應用程序之間使用某種類型的MQ?這是否需要高帶寬?它們是否在相同的WAR文件中? –

+0

沒有所有的問題。 –

回答

0

你想要做的是在兩個web應用程序之間的IPC, 或在它們之間共享一些信息。

如果你有一個緩存可用(memcached或類似的),你可以 存儲/檢索那裏的信息。

如果沒有緩存可用,那麼CrossContext = true可能會對您有所幫助。 有了這個,您可以從servlet /請求中調用「其他」webapp。

下面是一個簡單的解釋是如何工作的

http://lukaszbudnik.blogspot.ch/2009/06/session-sharing-in-apache-tomcat.html

如果谷歌的「雄貓會話共享」,你會得到更多的結果。

請注意,這個CrossContext的東西只有在同一個tomcat實例中才有效。 只要你爲負載均衡或高可用性添加另一個tomcat實例,就會中斷。在這種情況下,您應該使用某種消息總線或消息隊列。

+0

完美!非常感謝解決方案和解釋! –

相關問題