Mark's Java Blog
          MyEclipse, Java EE, Spring, Struts, Hibernate, JPA, SWT, Swing, AJAX, JavaScript,SOA
          問題描述

          集成項(xiàng)目HT實(shí)施過程中碰到這樣的問題,本次集成是把兩個(gè)不同的應(yīng)用集成到同一個(gè)頁面框架下,部署方式為:

          同一個(gè)Server ServerName = Server01,同一個(gè)Weblogic,分別建立兩個(gè)Domain,Domain01(port-7001)和Domain02(port-7002),將應(yīng)用App1部署在Domain01,將應(yīng)用App2部署在Domain02,同時(shí)啟動(dòng)這兩個(gè)Domain,如果完全是默認(rèn)配置,單獨(dú)訪問兩個(gè)應(yīng)用是沒有問題的,但是在同一個(gè)客戶端如果訪問App1之后再訪問APP2會(huì)發(fā)現(xiàn)App1的Session丟失。

          問題分析

          客戶端在訪問App1時(shí),Domain01會(huì)在該客戶端保留一個(gè)名為 JSessionID的Cookie,記錄了Domain01的信息,JSessionID為Weblogic cookie-name的默認(rèn)值,當(dāng)同一個(gè)客戶端訪問App2時(shí),該客戶端Cookie中JSessionID的值被Domain02刷新,此時(shí)如果在之前已經(jīng)打開的IE中繼續(xù)訪問App1會(huì)發(fā)現(xiàn)Session丟失(JSessionID已經(jīng)被Domain02刷新!)。

          解決方案

          第一種方案

          在App1和App2的weblogic.xml文件添加如下屬性

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

          將 的值更改為不同于默認(rèn)值就可以

          如果不添加這個(gè),那么客戶端的COOKIE中保存的SESSION ID的對(duì)象名字是JSESSIONID,來自同一個(gè)SERVER上面的應(yīng)用可能會(huì)造成這個(gè)SESSION ID的丟失,因?yàn)橹灰?span id="wmqeeuq" class="hilite1">WEBLOGIC產(chǎn)生的SESSION ID都是保存在這個(gè)名字的COOKIE中,這段配置就是把應(yīng)用中的這個(gè)名字換成我們私有的,避免和其它域中的應(yīng)用產(chǎn)生的JSESSIONID沖突。

          第二種方案

          訪問App1時(shí)用IP來訪問,訪問App2時(shí)用域名來訪問。

          特別注意

          如果應(yīng)用程序部署為Cluster的模式,將無法設(shè)定,否則部署時(shí)發(fā)生錯(cuò)誤。
          posted on 2008-04-01 16:47 Mark 閱讀(5231) 評(píng)論(5)  編輯  收藏 所屬分類: weblogic
          Comments
          • # re: 同一個(gè)Server Weblogic兩個(gè)Domain CookieName沖突導(dǎo)致session失效問題
            wjqnet
            Posted @ 2009-03-03 22:26
            求助:我也遇到相同的問題,但我是cluster的,那應(yīng)該怎么辦呢?  回復(fù)  更多評(píng)論   
          • # re: 同一個(gè)Server Weblogic兩個(gè)Domain CookieName沖突導(dǎo)致session失效問題
            阿宗
            Posted @ 2009-07-25 19:21
            那,請(qǐng)問,一臺(tái)是App1是Weblogic,但另一臺(tái)是tomcat時(shí),該怎麼處理?  回復(fù)  更多評(píng)論   
          • # re: 同一個(gè)Server Weblogic兩個(gè)Domain CookieName沖突導(dǎo)致session失效問題[未登錄]
            mark
            Posted @ 2009-07-27 09:41
            @阿宗

            不同服務(wù)器不存在我所描述的這類沖突  回復(fù)  更多評(píng)論   
          • # re: 同一個(gè)Server Weblogic兩個(gè)Domain CookieName沖突導(dǎo)致session失效問題
            阿宗
            Posted @ 2009-07-31 21:43
            不好意思,我最近案子就發(fā)生這種情況,tomcat的session失效了  回復(fù)  更多評(píng)論   
          • # re: 同一個(gè)Server Weblogic兩個(gè)Domain CookieName沖突導(dǎo)致session失效問題[未登錄]
            mark
            Posted @ 2009-08-03 09:52
            @阿宗
            那主要是瀏覽器的session id改變了或者失效了造成的服務(wù)器端無法識(shí)別session  回復(fù)  更多評(píng)論   

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
           
          主站蜘蛛池模板: 岳池县| 甘泉县| 申扎县| 民县| 伊通| 盱眙县| 淮北市| 桓台县| 邵武市| 罗源县| 静乐县| 鸡东县| 西和县| 儋州市| 馆陶县| 化州市| 景洪市| 吉木乃县| 嘉禾县| 墨江| 武夷山市| 彰化市| 通州区| 青阳县| 广南县| 吴江市| 海口市| 沁水县| 葫芦岛市| 临泉县| 瑞安市| 松溪县| 张家港市| 那坡县| 柘荣县| 武邑县| 轮台县| 贞丰县| 临邑县| 柳林县| 昌都县|