HttpMediaTypeNotSupportedException: тип контента «видео / mp4» не поддерживается. Во время загрузки видео reavtive Spring webflux через Postman

#tomcat #mono #spring-webflux #multipart #reactive

#tomcat #моно #spring-webflux #составная #реактивный

Вопрос:

Я хочу загрузить видео, используя реактивную парадигму. Я пытаюсь создать контроллер, который будет принимать Mono как @RequestPart и сохранять его в MongoDB через реактивный поток (Spring webflux).

Мой контроллер выглядит так:

 @PostMapping(value = "/add/react", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public Mono<ResponseEntity> upload(@RequestPart(name = "file") Mono<FilePart>fileParts) throws Exception {
    return fileParts
            .flatMap(part -> this.gridFsTemplate.store(part.content(), part.filename()))
            .map((id) -> ok().body(Map.of("id", id.toHexString())));
}
 

Я пытаюсь добавить составной файл через Postman:
введите описание изображения здесь

Но, в конце концов, я получаю это сообщение

 2021-02-23 16:38:26.498  WARN 23456 --- [nio-8088-exec-2] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'video/mp4' not supported]
 

Не могли бы вы мне помочь, пожалуйста? Я искал Google в течение 2 дней и ничего не нашел.

Ответ №1:

Проблема с кодом, который я использовал Tomcat. Но Tomcat не может преобразовать многокомпонентный файл в Flux / Mono, решение моей проблемы — сменить веб-сервер. Вместо Tomcat я теперь использую Netty. И все работает нормально

     <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-reactor-netty</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-rest</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
 

Комментарии:

1. Это действительно так, не работает на Tomcat. Не могли бы вы указать источник, откуда вы это узнали?