嘗試使用Spring MVC接收發布請求時,出現錯誤(處理程序執行導致異常:內容類型'application/json'不受支持) 。Spring MVC和jackson不支持內容類型'application/json'
我的JSON,只是爲了測試,是非常簡單的:
{ "test": "abc123" }
我的POJO類:
public class Request {
String test;
public String getTest() {
return test;
}
public void setTest(String test) {
this.test = test;
}
}
而且我的控制器:
@RequestMapping(value = "/testing", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
private void testing(@RequestBody Request body, @RequestHeader HttpHeaders headers, HttpServletRequest httpRequest) {
System.out.println(body.getTest());
}
在我的pom.xml,我補充說:
<dependencies>
...
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.7.2</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.8.5</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>2.4.3</version>
</dependency>
</dependencies>
我認爲json反序列化中有些問題,但我找不到它。
任何幫助,歡迎。謝謝。
爲什麼在'produce'上使用'MediaType.APPLICATION_JSON_VALUE',而在'consumes'上使用字符串?當方法不產生任何東西時,爲什麼你有'produce'和'@ ResponseBody'?這可能會讓Spring MVC混淆,以防止映射工作。 – Andreas
@Andreas,'MediaType.APPLICATION_JSON_VALUE'只是''application/json''的一個常量,所以我不認爲這是問題所在。 無論如何,我刪除了'produce'和'@ ResponseBody',我仍然處於同一個問題。 –
@PedroH你爲什麼需要這個「消費」屬性呢?它僅用於使映射更具體。刪除它,然後重試。 – Nikem