有两个项目放到两个tomact下,版本是taomact5.5,两个tomact放到一台服务器上,tomactA,tomactB使用端口不同,单独访tomactA或tomactB下的应用程序都正常,但是当tomactA中的应用登录后,在启动tomactB中应用,tomactA中的被注销,应该是tomactB的session覆盖了tomactA的session,现在两个tomact启动方法是tomactA用bin/startup.bat,tomactB的启动方法是tomact5.exe(tomactB bin目录下只有bootstrap.jar,common-logging-api.jar,tomact5.exe,tomact5w.xe,tomact-juli.jar) 本想修改Java Options:下内容,
A端口 
-Dorg.apache.catalina.SESSION_COOKIE_NAME=aJSESSIONID 
-Dorg.apache.catalina.SESSION_PARAMETER_NAME=ajsessionid 
对B端口 
-Dorg.apache.catalina.SESSION_COOKIE_NAME=bJSESSIONID 
-Dorg.apache.catalina.SESSION_PARAMETER_NAME=bjsessionid
但是修改未起作用,查看tomactA ,tomactB的Java Options:下内容都是相同的(服务器只有一个jdk 1.5)
应该修改tomact下的哪个配置才能使session不冲突
注意:是两个项目放到两个tomact下,端口不同,在同一服务器上

解决方案 »

  1.   

    另外用startup.bat启动的bin目录下有个catalina.bat ,修改其中的
    setJAVA_optS=-Dorg.apache.catalina.SESSION_COOKIE_NAME=aJSESSIONID  
    -Dorg.apache.catalina.SESSION_PARAMETER_NAME=ajsessionid 
    也未起作用。是否还有其他的文件需要修改
      

  2.   

    “当tomactA中的应用登录后,再启动tomactB中应用,tomactA中的被注销”
    =========
    嗯,这样有哪里不对么? 覆盖后A不就注销了么
      

  3.   

    问题1:关于相同域名下多个应用集成的session冲突。 问题背景: 
    公司要集成3个应用到portal上,包括:OA、ERM和HR。开始时,规划使用统一的域名oa.xxxxxtechnology.com。由于HR是外购的系统,并且只能部署与tomcat5.5的root路径下,因此单独部署一个Tomcat服务器实例,占用8080端口。OA和ERM共同部署在一个Tomcat6.0下,ERM部署与root路径下,OA部署在/OA的路径下,两个应用都占用80端口。三个系统集成在同一个portal平台上,页面采用DIV嵌IFrame方式集成,系统间采用CAS实现SSO。 出现的问题: 
    用户登录后,在OA系统和ERM系统间切换运行正常,但进入到HR系统后,再切到ERM系统,发生session过期,而从HR切入OA系统则不会。 实验发现的原因 
    虽然HR与ERM部署与不同的Tomcat,并且采用不同的服务端口,但由于使用相同的域名oa.xxxxtechnology.com,且应用路径都是root,对于浏览器而言,他们共用相同的Session,因此会发生session覆盖问题。笔者作了相关的实验,证明HR与ERM的session是相互覆盖的。 
    实验结论是,浏览器依靠域名和应用的上下文路径来建立session关联,且与端口号无关。反过来,也证实了同一个应用可以使用多个端口。 解决方式 
    1.采用不同的上下文,如,将ERM的上下文路径从root变为/erm 
    2.采用子域名,如,将HR映射为hr.xxxxxtechnology.com,将ERM映射为erm.xxxxxtechnology.com. http://61.145.229.21/commonWeb/j2ee?webid=29&typeid=10&newsid=44您试试
      

  4.   

    现在的访问方式是
    http://192.168.1.2:7001/hh/login.do
    http://192.168.1.2:8088/hh/login.do
    不修改原有应用程序的目录结构是否有其他的方法
      

  5.   

    不修改原有应用程序的目录结构是否有其他的方法配置虚拟访问路径,映射本地部署地址,server.xml:<Context path="/test" debug="0" docBase="D:\Program Files\XXX\xxx" reloadable="true" />
    访问时就应该http://192.168.1.2:7001/test/XXX
      

  6.   


    学习了另外:
    不知道用urlrewriter是否可以解决lz“相同路径”的问题呢?
    也就是欺骗浏览器,让浏览器用不同的标志作为保存session的时候的关键字good luck
      

  7.   

    两个应用A、B分别放在tomcatA、tomcatB的webapp下了?按照四楼的说话,你不需要修改应用本身的目录结构,只需要对其中的某个应用A外面再包装一层路径就行了啊,然后在server.xml 中Contex 里指定一下不就行了啊。
      

  8.   

    villagehead   sunleisoft
    是否可以说明的在详细点。