问题描述:
同一个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时用域名来访问。