我有兩個貓頭鷹(server1 and server2)
,每個人運行單獨的戰爭(war1 and war2)
。我在這兩臺服務器上都添加了這個<Context sessionCookiePath="/">
到context.xml
。當瀏覽器打電話給另一臺服務器時,Tomcat會話共享不起作用
server1 : http://localhost:9090/myapp1 - spring application
server2 : http://localhost:8080/myapp2 - grails application (version 2.3.4)
Tomcat version 7.0.47
在我的情況下,server1是入口點。這些是步驟。
- 用戶通過瀏覽器點擊server1的url。
- 用他的憑據登錄
- 現在,服務器在成功驗證後創建了新會話。上的一個按鈕
- 點擊鏈接到服務器2
我期望的一樣會話使用的服務器2。
,我開始我都在期待時(服務器)WAR1的UI使得呼叫服務器2將得到來自瀏覽器的現有會話的服務器。但是當調用(調試時)到達server2時,沒有會話和server2創建新的會話。 同時,如果我直接在瀏覽器地址欄中點擊server2 url,server2正在從server1創建的瀏覽器中獲取會話,這是正確的。
我的問題是爲什麼它不會發生(server1)UI調用server2 ??時! 任何幫助將不勝感激。在此先感謝
這些端口是不同的,因此cookie甚至包含路徑/用於不同的主機/端口組合。 –
@Joshua Moore那麼爲什麼當我直接在瀏覽器中打開url時,它能夠選擇會話呢? – user2001627
對不起,我誤解了序列。 Cookie /請求來自瀏覽器並綁定到瀏覽器。因此,除非瀏覽器向兩臺服務器提出請求,否則這將是一個不同的會話。 App1到App2是不同於瀏覽器到App1的會話。我假設你在App1和App2之間使用HTTP請求,因爲你沒有指出你是否不是。 –