1. 程式人生 > >weblogic下同域不同埠下的跨域問題解決

weblogic下同域不同埠下的跨域問題解決

環境:同一臺伺服器,同一個Weblogic應用程式,分別建兩個域,兩個域IP一樣,埠不同.一個域裡放Web應用A,一個放Web應用B.

操作:使用者訪問A程式的時候,A程式會返回一個連結,讓使用者去訪問B.

問題:當用戶成功訪問到A給出的連結之後,與A的Session就丟失了

解決方法:

在A或B的WebInfo下建一個weblogic.xml,裡面新增如下配置:
通過在weblogic.xml中進行如下設定後,問題解決。

<session-descriptor>
 <session-param>
 <param-name>CookieName</param-name>
 <param-value>TS</param-value>
 </session-param>
 </session-descriptor>


【問題分析】
同一個Server ServerName = Server01,同一個Weblogic,分別建立兩個Domain,Domain01(port-8018)和Domain02(port-8008),將應用App1部署在Domain01,將應用App2部署在Domain02,同時啟動這兩個Domain,如果完全是預設配置,單獨訪問兩個應用是沒有問題的,但是在同一個客戶端如果訪問App1之後再訪問APP2會發現App1的Session丟失。
客戶端在訪問App1時,Domain01會在該客戶端保留一個名為 JSessionID的Cookie,記錄了Domain01的資訊,JSessionID為Weblogic cookie-name的預設值,當同一個客戶端訪問App2時,該客戶端Cookie中JSessionID的值被Domain02重新整理,此時如果在之前已經開啟的IE中繼續訪問App1會發現Session丟失(JSessionID已經被Domain02重新整理!)。