将JSON发布到Spring休息控制器

时间:2014-11-28 15:52:59

标签: json rest spring-mvc post

我被困在发送POST到我的休息控制器。当我尝试更新我的条目时,我获得415状态。我的Web应用程序中出现此错误,使用角度JS和用于其余API的chrome工具编写。

控制器代码:

@RequestMapping(value = "/update", method = RequestMethod.POST)
public void updateEntry(@RequestBody Entry entry) {
    System.out.println("editing: " + entry.toString());
}

我的pom.xml:

<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.1.2.RELEASE</version>
        <exclusions>
            <exclusion>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>4.1.2.RELEASE</version>
        <exclusions>
            <exclusion>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>4.1.2.RELEASE</version>
        <exclusions>
            <exclusion>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <!--JSON-->
    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>1.9.13</version>
    </dependency>
    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-core-asl</artifactId>
        <version>1.9.13</version>
    </dependency>

我正在尝试发送这样的内容:

{"id":"5471db49b0ca59357d6beded","name":"EADS 3 Sigma Nearchos"}

我的条目只包含两个字段:String id,String name。

1 个答案:

答案 0 :(得分:0)

Spring Framework提出了包括Jackson在内的库要求。使用Spring 4.1.x时,您应该更新到Jackson 2.1+。

查看migration page on github了解详情。