Json Spring REST服务在未记录日志的情况下失败

Json Spring REST服务在未记录日志的情况下失败,json,spring,rest,Json,Spring,Rest,我有一个RESTWeb服务,它有时工作,有时失败。也就是说,我的响应对象有几个子对象,包括一个包含多组相关数据的子对象。这些子对象的填充取决于入站参数集 如果我提交了一个应该得到失败响应的用户id/pw;i、 例如,如果用户id不正确或密码无效,响应将按预期返回 如果我提交了一个应该成功的用户id/pw,并且没有一个复杂的对象返回,那么响应将按预期返回 最后,如果我提交了一个用户id/pw,该用户id/pw应该返回一个连接到响应的复杂对象数组,那么我会得到一个日志静默失败,并重定向到一个500页

我有一个RESTWeb服务,它有时工作,有时失败。也就是说,我的响应对象有几个子对象,包括一个包含多组相关数据的子对象。这些子对象的填充取决于入站参数集

如果我提交了一个应该得到失败响应的用户id/pw;i、 例如,如果用户id不正确或密码无效,响应将按预期返回

如果我提交了一个应该成功的用户id/pw,并且没有一个复杂的对象返回,那么响应将按预期返回

最后,如果我提交了一个用户id/pw,该用户id/pw应该返回一个连接到响应的复杂对象数组,那么我会得到一个日志静默失败,并重定向到一个500页。有一段时间,我收到了关于主要复杂对象上的子对象和Hibernate会话关闭/不可用问题的投诉。我尝试初始化整个世界,这“有帮助”,因为我不再从Hibernate获取关于子对象上会话问题的详细异常日志,但我仍然被重定向到一个500页,根本没有任何日志记录。为了弄清楚这是否是嵌套/隐藏会话的问题,我尝试附加了一个手工创建的对象,但仍然得到了500页

下面是我的控制器代码,它在某些情况下工作,但如果EnergyAudit[]数组中填充了任何内容,则会失败

    @RequestMapping(method= RequestMethod.GET,value="login")
public @ResponseBody LoginResponse login(@RequestParam("userName") String userNameIn, @RequestParam("password") String passwordIn){

    LoginResponse theResponse = new LoginResponse();
    try{
        logger.info("Entering login for username: "+ userNameIn + " and pw: "+ passwordIn);


        //  CREATE! 
        EnergyAuditUser theUser; 

        try{ 
            // DO A BUNCH OF STUFF TO VALIDATE THEY ARE AN OK USER LEFT OUT FOR OUR PURPOSES HERE. 


        // OK.  IF WE GOT HERE, THEN WE CAN ASSUME THAT THERE IS A USER 
        // AND THEY GAVE US TEH GOOD DATA.  GOOD JOB, USER! 
        theResponse.setSuccessOrFailureSw(Constants.SUCCESS); 
        theResponse.setResponseMessage("Successfully logged in!"); 
        theResponse.setTheUser(theUser);

        // NOW, IF THE USER IS NOT A REACH USER, WE WANT TO SUBMIT BACK ANY AUDITS 
        // REACH USERS WILL HAVE ANOTHER TRANSACTION SET TO ALLOW THEM TO PICK AND CHOOSE
        // FROM THE DAYS AUDITS!
        if (theUser.getEnergyAuditUserType().equalsIgnoreCase(EnergyAuditUser.COT_AUDITOR_TYPE)){
            // WE SHOULD GET ANY AND ALL OPEN, ASSIGNED AUDITS FOR THIS USER.
            EnergyAudit[] assignedAudits = auditService.getAssignedEnergyAuditsForUser(theUser.getEnergyAuditUserId(), false,false, true, false);           
        //  theResponse.setEnergyAudits(assignedAudits);    

// NOTE THAT HERE I ATTEMPTED TO CREATE A NON-BOUND AUDIT TO EVALUATE IF THE SILENT FAILURE WAS HIBERNATE SESSION RELATED.  NO LOVE!
            EnergyAudit bogusAudit = new EnergyAudit(); 
            bogusAudit.setStartingInsulationRvalue(32); 
            bogusAudit.setStreetAddress("123 Chiefy Street"); 
            bogusAudit.setAuditDate(new java.util.Date()); 

            EnergyAudit[] bogusResults = new EnergyAudit[1]; 
            bogusResults[0] = bogusAudit; 

            theResponse.setEnergyAudits(bogusResults);

        }



        // THIS USER / LOSER OUGHT TO BE GOOD TO GO!
        return theResponse;
让我抓狂的是,我的控制台没有告诉我这里发生了什么。非常感谢您的任何见解

布莱恩