使用Jackson JSON转换在Spring中接收POST请求时出错

时间:2013-08-22 21:34:40

标签: json spring post jackson

我是Jackson和Spring的新手,所以请原谅我这是一个愚蠢的问题。我一直在研究一个处理JSON请求的简单spring项目。我有GET和DELETE工作,但是当我尝试POST时出现错误:

SEVERE: Servlet.service() for servlet [mvc-dispatcher] in context with path [/CynergyRestStarterKit] threw exception [Handler processing failed; ...with root cause
java.lang.NoSuchMethodError: org.codehaus.jackson.map.type.TypeFactory.type(Ljava/lang/reflect/Type;Lorg/codehaus/jackson/type/JavaType;)Lorg/codehaus/jackson/type/JavaType;
at org.springframework.http.converter.json.MappingJacksonHttpMessageConverter.getJavaType(MappingJacksonHttpMessageConverter.java:229)

这是我的Java服务:

@RequestMapping(value = "/todos", method = RequestMethod.GET)
public @ResponseBody
List<TodoItem> getTodos() {     
    return tasks;
}

@RequestMapping(value = "/todo/create", method = RequestMethod.POST)
public @ResponseBody
TodoItem createTodo(@RequestBody TodoItem item) {
    return null;
}

我做错了什么?

2 个答案:

答案 0 :(得分:1)

您使用的是什么版本的Spring和Jackson?

This似乎表明版本问题。

我看到你正在使用1.x的Jackson(codehaus vs fastxml)。我会将Spring和Jackson升级到最新版本。

答案 1 :(得分:0)

我使用spring-webmvc 3.2.9遇到同样的问题,经过几次退休后我发现我的项目需要以下库:

  • 杰克逊 - 注解-2.3.3
  • 杰克逊 - 芯 - 2.3.3
  • jackson-mapper-asl-1.9.13
  • 杰克逊核-ASL-19.3

因此添加这些解决了问题