Tomcat响应混乱

时间:2013-09-25 17:38:48

标签: java spring jsp tomcat

一直看到一个非常独特的情况。需要一些输入。

背景:我们在带有ELB的ec2实例上有tomcat服务器。我们的应用程序是一个不使用会话的spring应用程序,因为我们不希望负载均衡器跟踪会话。我们使用cookie来识别用户。我们使用Memcache存储一些基本的会话信息。在大多数情况下,一切都很好。

问题:在一些偏远的情况下,0.01%的时间(我们分析过),用户之间的反应变得混乱。用户通常来自同一个客户端IP。我们知道这一点,因为我们的申请被学校广泛使用。客户端cookie和我们在servlet中读取的cookie匹配。我们很肯定我们的应用程序没有查找数据库中的错误信息。但是渲染的响应(视图)是针对另一个用户的。我们知道两个用户都在同一时间登录。

这与Tomcat有关吗?还是网络相关?

控制器代码:

@RequestMapping("/kids")

public ModelAndView kids(HttpServletRequest request, HttpServletResponse response) {

    StudentUserSession studentUserSession = BaseController.getStudentUserSession(request);

    if(studentUserSession != null) {

    ModelAndView mv = new ModelAndView("kids");

        mv.addObject("studentUserSession", studentUserSession);

        return mv;

    } else {

        return new ModelAndView("redirect:/signin");

    }

}

public ModelAndView kids(HttpServletRequest request, HttpServletResponse response) { StudentUserSession studentUserSession = BaseController.getStudentUserSession(request); if(studentUserSession != null) { ModelAndView mv = new ModelAndView("kids"); mv.addObject("studentUserSession", studentUserSession); return mv; } else { return new ModelAndView("redirect:/signin"); } }

JSP代码:

var acookie = readCookie("sp_utkn");

var studentId = ${studentUserSession.studentId};

$.getJSON("/getStudentProfile", function(data){
 var sId = -1;
 $.each(data, function (key, value) {
    if(key == 'studentId'){
    sId = value;
    }
 });
 dojo.xhrGet({
    url:"/logStudentEvent?cookie=" + acookie+"&stuId="+studentId+"&aId="+sId+"&ref="+otherInfo.join(','),
 });
  });

JSON Get Call获取相同的对象。 aId与cookie匹配,但studentId不匹配。页面上的其他数据也适用于其他用户。但是cookie一致且准确。

0 个答案:

没有答案