应用A部署在localhost:7001中
应用B部署在localhost:7003中在A的一个页面iframe中访问B的页面,再点A菜单上的一个链接,结果跳到A登陆页面。原因是A的session被覆盖了,因为访问B时,weblogic(或ie?)认为是同一个域,接收了B的set-cookie指令,把对应的cookie内容覆盖了,其中包括jsessionid,造成A的session丢失。如果IP不同,则不会发生这个问题,因为weblogic(或ie?)会为不同的IP分配不同的cookie空间,而不区分端口号。IP是不能换了,有什么办法吗?

解决方案 »

  1.   

    通过设置weblogic.xml中cookie-name为不同名称解决
      

  2.   

    设置各个应用使用不同的cookie-name,或者将JSESSIONID的path路径设置为不同1)weblogic的设置(设置不同的cookie-name):请在WEB-INF\Weblogic.xml添加如下代码<session-descriptor>               <cookie-name>JSESSIONID1</cookie-name>   </session-descriptor>