我正在使用Spring MVC和Java8构建宁静的Web服务,但是由于以下错误,我无法执行发布请求:
服务器拒绝此请求,因为请求实体的格式不受请求的方法所请求的资源支持。
这是我的控制器类
@RestController
public class SpringRestWebService {
@RequestMapping(value = "/employee",method = RequestMethod.POST,consumes="application/json")
public ResponseEntity<Employee> addEmployee(@RequestBody final Employee employee)
{
return new ResponseEntity<Employee>(HttpStatus.OK);
}
}
这是包含用于JSON解析的jackson库的POM文件。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.inov8</groupId>
<artifactId>MavenRestWebServices</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.0.8.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.0.8.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.0.8.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.6.0</version>
</dependency>
</dependencies>
</project>
型号类别:员工
public class Employee {
private String id;
private String name;
public Employee()
{
}
public Employee(String id, String name) {
this.id = id;
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
注意:我将application / json作为内容类型包含在请求标头中,而且我能够成功执行Get请求,而问题仅在于POST请求。
邮递员要求
我已经尝试了Internet上所有可用的选项,但仍然遇到错误。
最佳答案
让我感谢Stak溢出社区为我提供的帮助。在详细研究了这个问题之后,我知道Http 415不支持的媒体类型是由于我的servlet.xml中缺少<annotation-driven/>
造成的。添加此错误之后,我就可以摆脱这个错误。
此外,如果您遇到类似的错误,可以访问下面的链接进行纠正。
https://inneka.com/programming/ajax/post-json-fails-with-415-unsupported-media-type-spring-3-mvc/