Java Tomcat反应混乱

Java Tomcat反应混乱,java,spring,jsp,tomcat,Java,Spring,Jsp,Tomcat,我们看到了一个非常独特的情况。需要一些投入 背景:我们在带有ELB的ec2实例上有tomcat服务器。我们的应用程序是一个spring应用程序,它不使用会话,因为我们不希望负载平衡器跟踪会话。我们使用cookies来识别用户。我们使用Memcache来存储一些基本的会话信息。在大多数情况下,一切都很好 问题:在某些远程情况下,0.01%的时间(我们分析)用户之间的响应混淆。用户通常来自同一个客户。我们知道这一点,因为我们的应用程序正被学校广泛使用。客户端cookie和我们在servlet中读取的

我们看到了一个非常独特的情况。需要一些投入

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

问题:在某些远程情况下,0.01%的时间(我们分析)用户之间的响应混淆。用户通常来自同一个客户。我们知道这一点,因为我们的应用程序正被学校广泛使用。客户端cookie和我们在servlet中读取的cookie匹配。我们确信我们的应用程序没有在数据库中查找错误的信息。但是呈现的响应(视图)是针对另一个用户的。我们知道两个用户同时登录

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

控制器代码:


@请求映射(“/kids”)

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调用正在获取相同的对象。aId与cookie匹配,但studentId不匹配。页面上的其他数据也用于其他用户。但是cookies是一致和准确的。

您能发布更多数据来帮助我们吗?也许是密码?如何从缓存中存储/检索数据?是否存储/使用基于ThreadLocal的数据,但没有正确清理这些数据?我使用ModelAndView将数据发送到JSP视图。我使用ModelAndView将数据发送到JSP视图<代码>@RequestMapping(“/kids”)公共模型和视图kids(HttpServletRequest,HttpServletResponse){StudentUserSession StudentUserSession=BaseController.getStudentUserSession(request);//如果键不存在,则对象从Memcached/DB传入。如果(StudentUserSession!=null),则键是请求中的cookie值{ModelAndView mv=new ModelAndView(“kids”);mv.addObject(“studentUserSession”,studentUserSession);return mv;}否则{return new ModelAndView(“redirect:/signin”);}我对格式设置感到抱歉。仍在试图找出插入代码的最佳方式。
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(','),
 });
  });