论坛首页 Java企业应用论坛

tomcat5多实例JSESSIONID冲突问题请教

浏览 8865 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-07-01  
环境说明:服务器上按照多实例的方式跑两个tomcat实例,对应不同端口,用ip+端口访问某个实例。但是jsessionid的ip和路径(均为'/')全相同,也就是会发生冲突,后访问的实例会覆盖之前的实例的jsessionid的cookie。
在网上和站上都没有搜到解决方案。似乎有说法是tomcat不提供对jsessionid的定制化配置,请问这样的情况是否可以通过配置不同实例的cookie的key不同来解决,在哪里进行相关配置;或者有什么其他的解决方案。
第一次提问,先行谢过。
   发表时间:2007-07-01  
你的问题描述不够清楚.
为什么要两个tomcat实例?两个实例中的应用是相同的么?
0 请登录后投票
   发表时间:2007-07-02  
Lucas Lee 写道
你的问题描述不够清楚.
为什么要两个tomcat实例?两个实例中的应用是相同的么?

不是相同的,一个是用于项目web测试的实例,一个是JIRA。只是端口号不同。
比如: JIRA的cookie中 JSESSIONID 值为A 路径为"/" 没有端口信息
项目的cookie中其他信息都相同,而cookie又没有关于端口的信息用于区别,所以造成会相互覆盖。

正式发布的时候可以避免这种情况,我只是想知道tomcat有没有哪里可以设置JSESSIONID cookie的key(这个cookie应该是tomcat自身管理的,和普通的cookie好像有所不同)
0 请登录后投票
   发表时间:2007-07-02  
dyingcow 写道
Lucas Lee 写道
你的问题描述不够清楚.
为什么要两个tomcat实例?两个实例中的应用是相同的么?

不是相同的,一个是用于项目web测试的实例,一个是JIRA。只是端口号不同。
比如: JIRA的cookie中 JSESSIONID 值为A 路径为"/" 没有端口信息
项目的cookie中其他信息都相同,而cookie又没有关于端口的信息用于区别,所以造成会相互覆盖。

正式发布的时候可以避免这种情况,我只是想知道tomcat有没有哪里可以设置JSESSIONID cookie的key(这个cookie应该是tomcat自身管理的,和普通的cookie好像有所不同)

http://www.caucho.com/resin-3.0/config/resin.xtp
resin好像可以把jsessionid改个名字
0 请登录后投票
   发表时间:2007-07-20  
楼主主要是想知道是否可以设置不同的session key,恐怕要让你失望的了,TOMCAT的源码:
HttpSession doGetSession(boolean create){

// Creating a new session cookie based on that session
if ((session != null) && (getContext() != null)
&& getContext().getCookies()) {
Cookie cookie = new Cookie(Globals.SESSION_COOKIE_NAME,
session.getId());
((HttpServletResponse) response).addCookie(cookie);
}
其中的这行代码:
Cookie cookie = new Cookie(Globals.SESSION_COOKIE_NAME,
session.getId());
恐怕.....
0 请登录后投票
   发表时间:2007-07-20  
另外,我在寻找如何设置TOMCAT的属性,让TOMCAT总是通过cookie的方式来传递JSessionID,而不是通过通过URL重写的方式,请问楼主和各位有经验么?
0 请登录后投票
   发表时间:2007-07-20  
浏览器是用url来标识不同的cookie的吧?端口不同,是否也表示url也是不同?
0 请登录后投票
   发表时间:2007-07-23  
端口不同,域名和path相同的话,服务器是不会区分的。域名和path用来标示cookie的范围。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics