HTTP 415 неподдерживаемый тип носителя Использование Spring MVC Restful Web Services - PullRequest
0 голосов
/ 07 января 2020

Я использую Spring MVC и Java8 для создания успокоительных веб-служб, но я не могу выполнить запрос Post из-за следующей ошибки:

Сервер отклонил этот запрос, поскольку объект запроса является в формате, который не поддерживается запрошенным ресурсом для запрошенного метода.

Вот мой контроллер Класс

@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);
    }

}

Вот файл POM, который включает библиотеку Джексона для JSON парсинг.

<?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;
    }
}

Примечание: я включаю приложение / json в качестве типа содержимого в заголовок запроса, Более того, я могу выполнить запрос Get успешно, и проблема только с запросом POST.

Запрос почтальона

Web Service Request Body Web Service Request Header

Я перепробовал все варианты, доступные через inte rnet, но все же я сталкиваюсь с ошибкой.

1 Ответ

0 голосов
/ 08 января 2020

Позвольте мне поблагодарить сообщество переполнения Stak за помощь. После подробного изучения проблемы я узнал, что Http 415 Неподдерживаемый тип носителя произошел из-за отсутствия <annotation-driven/> в моем сервлете. xml. После добавления я могу чтобы избавиться от этой ошибки.

Более того, если вы когда-либо сталкивались с подобной ошибкой, вы можете перейти по ссылке ниже, чтобы исправить ее.

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

...