Spring HttpMediaTypeNotAcceptableException - PullRequest
0 голосов
/ 02 марта 2020

Я пытаюсь создать конечную точку для загрузки видеофайла. вот код:

@GetMapping(value = "/video")
    public ResponseEntity getVideo() throws MalformedURLException {
        FileSystemResource fileSystemResource = new FileSystemResource("E:\\video\\hello.mp4");
        ResourceRegion region = new ResourceRegion(fileSystemResource,
                                                   0,
                                                   fileSystemResource.getFile().length());
        return ResponseEntity.status(HttpStatus.PARTIAL_CONTENT)
                .contentType(MediaType.valueOf("video/mp4"))
                .contentLength(fileSystemResource.getFile().length())
                .body(region);
    }

я получаю этот респон при попытке вызвать URL:

org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation

заранее благодарю вас за вашу помощь

1 Ответ

1 голос
/ 02 марта 2020

1) без ResourceRegion

    @GetMapping(value = "/video")
    public ResponseEntity getVideo() throws MalformedURLException {
        FileSystemResource fileSystemResource = new FileSystemResource("E:\\video\\hello.mp4");
//        ResourceRegion region = new ResourceRegion(fileSystemResource, 0, fileSystemResource.getFile().length());
        return ResponseEntity.status(HttpStatus.PARTIAL_CONTENT)
                .contentType(MediaType.valueOf("video/mp4"))
                .contentLength(fileSystemResource.getFile().length())
                .body(fileSystemResource);
    }

2) или добавление преобразователей к пружине:

@Configuration
public class ApplicationConfig extends WebMvcConfigurationSupport {

    @Bean
    public ResourceRegionHttpMessageConverter regionMessageConverter() {
       return new ResourceRegionHttpMessageConverter();
    }

    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        converters.add(regionMessageConverter());
        super.configureMessageConverters(converters);
    }
}

с контроллером исправлений:

@GetMapping(value = "/video")
public ResponseEntity<ResourceRegion> getVideo() {
    FileSystemResource fileSystemResource = new FileSystemResource("E:\\video\\hello.mp4");
    ResourceRegion region = new ResourceRegion(fileSystemResource, 0, fileSystemResource.getFile().length());
    return ResponseEntity.status(HttpStatus.PARTIAL_CONTENT)
            .contentType(MediaType.valueOf("video/mp4"))
            .contentLength(fileSystemResource.getFile().length())
            .body(region);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...