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

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

          同一個(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ú)訪問(wèn)兩個(gè)應(yīng)用是沒(méi)有問(wèn)題的,但是在同一個(gè)客戶端如果訪問(wèn)App1之后再訪問(wèn)APP2會(huì)發(fā)現(xiàn)App1的Session丟失。

          問(wèn)題分析

          客戶端在訪問(wèn)App1時(shí),Domain01會(huì)在該客戶端保留一個(gè)名為 JSessionID的Cookie,記錄了Domain01的信息,JSessionID為Weblogic cookie-name的默認(rèn)值,當(dāng)同一個(gè)客戶端訪問(wèn)App2時(shí),該客戶端Cookie中JSessionID的值被Domain02刷新,此時(shí)如果在之前已經(jīng)打開(kāi)的IE中繼續(xù)訪問(wèn)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,來(lái)自同一個(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沖突。

          第二種方案

          訪問(wèn)App1時(shí)用IP來(lái)訪問(wèn),訪問(wèn)App2時(shí)用域名來(lái)訪問(wèn)。

          特別注意

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

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

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


          網(wǎng)站導(dǎo)航:
           
           
          主站蜘蛛池模板: 丹东市| 故城县| 北宁市| 弥渡县| 桂阳县| 房产| 布拖县| 什邡市| 乌什县| 七台河市| 望城县| 通山县| 赤壁市| 清镇市| 天柱县| 襄樊市| 梁河县| 呈贡县| 余庆县| 大悟县| 马鞍山市| 长春市| 彰化县| 乐至县| 方正县| 剑河县| 南汇区| 共和县| 宁乡县| 观塘区| 枝江市| 轮台县| 金溪县| 万山特区| 梅河口市| 茂名市| 稻城县| 拉萨市| 博湖县| 沙湾县| 游戏|