Я пытаюсь загрузить файл 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)
на
...