我正在使用tomcat 7.0和java 6。 我想在 examples.com 和 abc.examples.com
的域和子域之间共享会话所以在 context.xml 中添加标记
<Context antiResourceLocking="false" privileged="true" sessionCookieDomain=".examples.com" sessionCookiePath="/" >
成功分享Cookies JSESSIONID,但是当我在 examples.com
中设置属性时 logger.info( "Demo1 : "+httpSession.getId());
httpSession.setAttribute("data", "subhash lamba");
logger.info(" Demo1 data"+ httpSession.getAttribute("data") );
无法在 test.examples.com 子域
中访问 HttpSession httpSession=request.getSession();
logger.info( "Demo3 : "+httpSession.getId());
logger.info(" Demo3 data "+ httpSession.getAttribute("data") );
当我在域和子域中记录JSESSIONID是相同但当我尝试共享属性时 他们之间没有用。
答案 0 :(得分:1)
我找到了解决方案。 我成功地在两个域之间共享会话,现在我的问题是识别同一个用户。 当我尝试在那两个域和子域之间共享会话数据时,它不起作用,因为服务器维护单个应用程序的会话。
现在我的解决方案是:
在Tomcat服务器中有 context ,在上下文中我们可以存储Object,同一个Tomcat中的每个应用程序都可以访问相同的Context。所以现在 我在java.util.Map对象存储键值对中的java.util.Map对象上创建,其中键是JSESSIONID,值是登录的用户ID。所以现在我可以轻松访问登录域和所有子域的用户。