我是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;
}
我做错了什么?
答案 0 :(得分:1)
您使用的是什么版本的Spring和Jackson?
This似乎表明版本问题。
我看到你正在使用1.x的Jackson(codehaus vs fastxml)。我会将Spring和Jackson升级到最新版本。
答案 1 :(得分:0)
我使用spring-webmvc 3.2.9遇到同样的问题,经过几次退休后我发现我的项目需要以下库:
因此添加这些解决了问题