簡體   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