java - JsonMessage在服务器端是正常的但是向客户端返回错误500

时间:2014-07-07 12:54:54

标签: java json spring

我执行ajax调用以获取项目列表,但它返回HTTP错误500。 我在服务器中跟踪它,并且填充了地图而没有错误。没有例外。

@ResponseBody
@RequestMapping(value = "some/path", method = RequestMethod.POST )
public JsonMessage getlist(@RequestParam(value = "id") Long id){
    MyObject myobject = myObjectManager.get(id);

    Map map =  new HashMap<>();
    map.put("shits",lottery.getMultipleRewards());

    return JsonMessage.Success(map);
}

任何想法?

(如果地图为空或我在其上设置了一个像字符串一样的静态,那么它可以工作)。

2 个答案:

答案 0 :(得分:1)

当客户端没有包含正确的Accept: application/json标头或服务器未包含Content-Type: application/json时,我已经看到这种情况发生在特别苛刻的实现中。

由于错误发生在代码之外,因此可能会以意外的方式/位置生成日志记录,您可能已经抑制了该特定的记录器。

我能想到的另一件事是你可能通过另一台服务器代理请求。在这种情况下,处理请求的服务器可以生成正确的响应,但代理会出于某种原因抛出错误。

答案 1 :(得分:0)

  1. 尝试返回字符串
  2. 如果有效,请尝试使用最简单的对象( with xml root
  3. 如果有效则尝试返回没有root的单个对象。
  4. 如果有效,请尝试使用字符串映射
  5. 检查是否正确设置了所有记录器。 您的配置和使用的技术可能有助于诊断。