前因
- 在同一个服务器上搭建多个tomcat项目,例如A和B。在浏览器访问A项目和B项目时,先登录A项目在登陆B项目。这时候A项目刷新后会回到登陆页面,需要重新登陆的现象。在不同浏览器上实验结果都一样。
调查结果
- 经过网上相关材料调查,是由于在同一个IP下面多个tomcat的cookie名称一致,IP一致会被认为是同一个域,接收了B的set-cookie指令,把对应的cookie内容覆盖了,其中包括jsessionid,造成A的session丢失。
解决方案
- 将项目分服务器部署
- 指定不同tomcat的cookie名称
解决具体步骤
【conf/server.xml】
<Context path="" docBase="ROOT" debug="0" reloadable="false" sessionCookiePath="/" sessionCookieName="cookiename"></Context>
【WEB-INF\Weblogic.xml】
<session-descriptor>
<cookie-name>JSESSIONID1</cookie-name>
</session-descriptor>