繁体   English   中英

415不支持的媒体类型-春季版

[英]415 Unsupported Media Type - Spring version

我的控制器上有此方法:

@RequestMapping(value="/test", method = RequestMethod.POST)
public @ResponseBody String test(@RequestBody Test test) {
    return test.getName();
}

我的测试班:

public class Test implements Serializable {

    private static final long serialVersionUID = -1150931681075770764L;

    private String name;
    public String getName() {return name;}
    public void setName(String name) {this.name = name;}
}

我使用以下方式发布此json:

{"name": "avocado"}

我也有这个注释:

<mvc:annotation-driven />

我正在使用Advanced Rest Client进行测试。 我的请求的Content-Type设置为“ application / json”。

如果我将spring版本设置为4.0.9.RELEASE或更早版本,则发布时会得到200 OK代码。

如果我将spring version设置为4.1.0.RELEASE或更高版本,则会得到415 Unsupported Media Type。

为了使代码200将spring版本设置为4.2.1.RELEASE,我应该怎么做?

我建议你添加

@RequestMapping(value="/test", method = RequestMethod.POST, 
    consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody String test(@RequestBody Test test) {
    return test.getName();
}

转换也可以与HttpMessageConverter<?>一起使用,以便能够以JSON格式序列化/反序列化,您需要在类路径中具有Jackson库,然后spring就能实例化MappingJackson2HttpMessageConverter

将此添加到您的依赖项。

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>${jackson-json.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>${jackson-json.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>${jackson-json.version}</version>
        </dependency>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM