【问题标题】:Error receiving POST request in Spring with Jackson JSON conversion在 Spring 中使用 Jackson JSON 转换接收 POST 请求时出错
【发布时间】:2013-08-22 21:34:40
【问题描述】:

我对 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;
}

我做错了什么?

【问题讨论】:

    标签: json spring post jackson


    【解决方案1】:

    你用的是什么版本的 Spring 和 Jackson?

    This 似乎表示版本问题。

    我看到您使用的是 Jackson 的 1.x(codehaus 与 fastxml)。我会将 Spring 和 Jackson 都升级到最新版本。

    【讨论】:

    • jackson-core-asl-1.5.6.jar
    • jackson-mapper-asl-1.5.6.jar
    • 那你用的是ant吗?春季版怎么样?我们目前正在运行 Spring 3.2.3.RELEASE 和 Jackson 2.2.0。除非有不升级的令人信服的理由,否则我会首先这样做。
    • 我用的是spring 3.2.4
    • 他们有可用的 Jackson JAR 的二进制版本吗?我还没有真正了解 Maven。
    【解决方案2】:

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

    • jackson-annotations-2.3.3
    • jackson-core-2.3.3
    • jackson-mapper-asl-1.9.13
    • jackson-core-asl-19.3

    所以添加这些解决了问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-09
      • 2020-09-10
      • 1970-01-01
      • 2018-10-04
      • 2016-06-12
      • 2020-07-29
      • 2011-04-14
      相关资源
      最近更新 更多