环境:同一台服务器,同一个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刷新!)。