lyk20042810 发表于 2015-7-22 21:54:50

关于session共享的问题,求救啊

本帖最后由 pig2 于 2015-7-22 22:23 编辑

1、两个tomcat在同一台机器上、seesion共享成功。(tomcat端口不同)
2、tomcat在不同的机器上,session共享失败。日志如下:
      Jul 23, 2015 5:41:27 AM de.javakaffee.web.msm.MemcachedSessionService requestFinished
      FINE: No session found in session map for 5556F95BE394E00AF2AB3D024AE77A97-n1
      总是找不到session
3、tomcat配置文件context.xml
      <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
                memcachedNodes="n1:192.168.8.20:11211"
               sticky="false"
               lockingMode="auto"
               sessionBackupAsync="false"
               requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
               sessionBackupTimeout="1000" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
         />
         所有tomcat的配置都一样、版本都是7.0.54、tomcat在不同机器上的时候、负载不管用nginx、还是lvs都session共享失败。
         系统版本为centos6.5、放火强都已经关闭。
4、求大神给小弟分析下、这是什么原因造成。小弟不胜感激。

lyk20042810 发表于 2015-7-22 23:31:32

问题已经解决:
1、原因是两台电脑的系统时间不同步,大意了。造成了session过期。所以取不到。
2、统一台电脑能成功,不同电脑不能成功,回头想想恍然大悟啊。分析问题能力有待提高啊。{:soso_e103:}

arsenduan 发表于 2015-7-22 22:32:13

这个其实就是session共享失败了。网上资料很多的。

下面仅供参考

但我们在管理这些项目时,只有一个登陆口,然后在其他项目取session来实现身份的验证。1、配置tomcat下 conf/server.xml文件,在<Host></Hoser>配置如下:       <Host name="localhost"appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">    <!-- aa 和bb 为两个不同的web项目-->   <Context path="/aa"reloadable="true" crossContext="true" />
    <Context path="/bb"reloadable="true" crossContext="true"/>      </Host>2、 在 aa项目存入session   session.setAttribute("user",new Date().toString()+"weiqingli");
    ServletContext ContextA =session.getServletContext();
    ContextA.setAttribute("session", session);3、在bb 项目取出 session    HttpSession session1 =request.getSession();   
       ServletContext Context = session1.getServletContext();   
       ServletContext Context1= Context.getContext("/aa");   
      if(Context1 !=null && !Context1.equals("")){      
            HttpSession sess =(HttpSession)Context1.getAttribute("session");
            out.println(sess.getAttribute("user"));
      }大家可能很容易看得出这个是单向传的session,其实要实现双向,将上面的程序反写就可以实现从bb存入,aa取出了。

lyk20042810 发表于 2015-7-22 23:28:02

arsenduan 发表于 2015-7-22 22:32
这个其实就是session共享失败了。网上资料很多的。

下面仅供参考


感谢你的回答。这也是一种思路。对我们公司不太适用。再次表示感谢。
页: [1]
查看完整版本: 关于session共享的问题,求救啊