关于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、求大神给小弟分析下、这是什么原因造成。小弟不胜感激。
问题已经解决:
1、原因是两台电脑的系统时间不同步,大意了。造成了session过期。所以取不到。
2、统一台电脑能成功,不同电脑不能成功,回头想想恍然大悟啊。分析问题能力有待提高啊。{:soso_e103:}
这个其实就是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取出了。
arsenduan 发表于 2015-7-22 22:32
这个其实就是session共享失败了。网上资料很多的。
下面仅供参考
感谢你的回答。这也是一种思路。对我们公司不太适用。再次表示感谢。
页:
[1]