我正在使用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请求。

邮递员要求

java - 使用Spring MVC Restful Web Services的HTTP 415不支持的媒体类型-LMLPHP
java - 使用Spring MVC Restful Web Services的HTTP 415不支持的媒体类型-LMLPHP

我已经尝试了Internet上所有可用的选项,但仍然遇到错误。

最佳答案

让我感谢Stak溢出社区为我提供的帮助。在详细研究了这个问题之后,我知道Http 415不支持的媒体类型是由于我的servlet.xml中缺少<annotation-driven/>造成的。添加此错误之后,我就可以摆脱这个错误。

此外,如果您遇到类似的错误,可以访问下面的链接进行纠正。

https://inneka.com/programming/ajax/post-json-fails-with-415-unsupported-media-type-spring-3-mvc/

10-07 12:56