Ошибка при загрузке PDF-файла с помощью Spring 5 - PullRequest
1 голос
/ 06 марта 2019

Я пытаюсь загрузить файл PDF, используя Spring 5. Ниже мой код:

@RequestMapping(path = "/pdf", method = { RequestMethod.POST }, produces = MediaType.APPLICATION_PDF_VALUE)
public Mono<ResponseEntity<Resource>> getPDF(ServerHttpRequest httpRequest) 
{
    File file = new File(filepath);
    ResponseEntity<Resource> resource = getResource(file);
    return Mono.justOrEmpty(resource);
}

public ResponseEntity<Resource> getResource(File file) {
   final InputStream inputStream = new BufferedInputStream(new FileInputStream(file));
   HttpHeaders headers = new HttpHeaders();
   headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + file.getName());
   headers.add("Cache-Control", "no-cache, no-store, must-revalidate");
   headers.add("Pragma", "no-cache");
   headers.add("Expires", "0");
   return ResponseEntity.ok().headers(headers).contentType(MediaType.APPLICATION_PDF).contentLength(file.length()).body(new InputStreamResource(inputStream));
}

Но я получаю следующее исключение:

java.lang.NoSuchMethodError: reactor.core.publisher.Flux.doOnDiscard (Ljava / языки / класс; Ljava / Util / функция / Потребитель;) Lreactor / ядро ​​/ издатель / Flux;

в org.springframework.core.io.buffer.DataBufferUtils.readByteChannel (DataBufferUtils.java:105) в org.springframework.core.io.buffer.DataBufferUtils.read (DataBufferUtils.java:202) в org.springframework.core.io.buffer.DataBufferUtils.read (DataBufferUtils.java:170) в org.springframework.core.codec.ResourceEncoder.encode (ResourceEncoder.java:76) в org.springframework.core.codec.ResourceEncoder.encode (ResourceEncoder.java:40) на

...

Ответы [ 2 ]

4 голосов
/ 06 марта 2019

У вас ошибка с вашими зависимостями.Вы используете несовместимые версии Spring Framework и Project Reactor:

java.lang.NoSuchMethodError: реактор.core.publisher.;) Lreactor / core / publisher / Flux;

Исправьте настройки вашего проекта, вы можете использовать Spring Initializer , чтобы увидеть, как выглядят правильные настройки.

1 голос
/ 06 марта 2019

Я решил проблему, разрешив конфликты зависимостей.У меня было две разные версии библиотеки реактор-ядро .Я удалил их обоих и скачал новейшую версию .

...