现象:用户访问服务器A的页面,A做一个一些处理后,将页面定向到服务器B的页面,服务器B再做一些处理后,将页面定向会服务器A的页面。如果A和B都是JBOSS, HttpSession能够保持。如果A是JBOSS,B是WAS,但是不运行在同一主机,那么不会有问题。如果A是JBOSS,B是WAS,而且A和B在同一台主机,那么HttpSession就无法保持,回到A后,A会生成一个新的会话,应该是HTTP报文中的session标志丢失了。 郁闷
原因:会话跟踪与一个jsessionid的cookie有密切的关系。
解决办法:如果A是JBOSS,B是WAS,而且A和B在同一台主机XXXhost,请先用XXXHost为主机名URL访问服务器A的页面,A做一个一些处理后,将页面定向到服务器B的页面(用主机名localhost作为URL),服务器B再做一些处理后,将页面定向会服务器A的页面(用XXXHost为主机名URL)。得到的结果是:Session可以正常保持。因此得到一个结论:Session和JSESSIONID以及主机名都有关系,如果都在一台机器上,就要用不同的虚拟主机来区分开。
原文链接: http://blog.csdn.net/jaminwm/article/details/780802