同一个Weblogic两个Domain CookieName冲突导致session失效问题
问题描述:
???? 同一个weblogic下新建两个domain:bjmmis_domain,report_domain。前者用来部署应用,后者用来部署报表。
在应用中通过redirect方式访问报表,就会出现访问报表后,无法访问应用(session丢失,提示重新登陆)。
?
问题分析:
???? 访问应用时,会在客户端保留一个名为JsessionID的cookie,记录了bjmmis_domain的信息,JSessionID为Weblogic?cookie-name的默认值。当访问报表时,客户端Cookie中JSessionID的值被report_domain刷新,于是再访问应用就会出现session丢失
??? 查看应用与报表war中的weblogic.xml中的/weblogic-web-app/session-descriptor/节点,发现两者都存在这样的session-param节点:
???? <session-param>
????? <param-name>CookieName</param-name>
????? <param-value>JSESSIONID</param-value>
??? </session-param>
?
解决方案:
?? 修改报表的weblogic.xml中的cookiename定义:
??? <session-param>
????? <param-name>CookieName</param-name>
????? <param-value>JSESSIONID1</param-value>
??? </session-param>
?
?
另外参考http://itindex.net/blog/2010/06/18/1276830937324.html
中的解决方案,也可以采用如下方式:
访问App1时用IP来访问,访问App2时用域名来访问。
?