[英]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.