将JSON发布到Spring MVC Controller返回400错误请求


问题内容

我想发布JSON并让Jackson将其转换为POJO,但是现在我什至无法发布简单的String参数。

  1. 我正在使用Jackson 2.3.2(jackson-core和jackson-databaind)

  2. 我正在使用Spring 3.2.8.RELEASE(spring-context,spring-webmvc)

  3. 我的控制器如下所示:

Customer Object        @RequestMapping(value="add-name", method=RequestMethod.POST, headers = "Accept=application/json")
    public String addName(@RequestParam(value = "name", required = false) String name) {
        LOG.info(String.format("name: %s", name));
        return "name";
    }
  1. 我用以下数据发布到该控制器:

    { "name" : "my_name" }
    
  2. 我收到的回复是 400 Bad Request

注意:我通过jQuery.post()提交POST
,但是要删除它作为变量,我也通过FF Poster附加组件提交POST,并将 URL,内容类型(application / json)和数据指定为以上。

编辑: 我认为问题可能是甚至没有调用Jackson库。我把它从依赖项中取出来,没有任何变化,没有不同的错误/异常,我仍然只是得到一个400 Bad Request响应。

编辑2: 即使我addName完全删除参数并发布一个空的主体,{}我仍然会得到一个400 Bad Request


问题答案:

我降级到Spring 3.1.1.RELEASE和Jackson 1.9.9,现在可以工作了。好像是hack。我以为Spring 3.2和Jackson
2是兼容的。