Я создаю веб-приложение с помощью весенней загрузки, в этом веб-приложении мне нужно запустить командную строку с помощью Runtime.getRuntime (), но проблема в том, что: эта команда выполняется после веб-приложения и это не то, что я хочу сделать, вопрос в следующем:
" как я могу убедиться, что инструкция Runtime.getRuntime () запускается при вызове в приложении весенней загрузки (не в конце) "
контроллер:
@PostMapping("/toLinPDf")
public ResponseEntity<ByteArrayResource> convertion(@RequestParam(value = "input", required = false) String in,
@RequestParam(value = "output", required = false) String out) throws IOException, InterruptedException, ExecutionException {
// the methode LinearizePDF contain the command line
linearizeService.LinearizePDf(in, out);
logger.warn("call the method linearizeService.LinearizePDf ");
FileSystemResource result = new FileSystemResource(out);
return ResponseEntity
.ok()
.contentLength(result.contentLength())
.contentType(
MediaType.parseMediaType("application/pdf"))
.body(new ByteArrayResource(IOUtils.toByteArray(result.getInputStream())));
}
linearizeService (содержит метод LinearizePDf (in, out)):
@Async
public void LinearizePDf(String Input , String Output) throws IOException, InterruptedException {
Runtime rt = Runtime.getRuntime();
// the command line
String command = "qpdf --linearize " + Input + " " + Output;
Process pr = rt.exec(command );
logger.warn("run the command");
pr.destroy();
}
Пожалуйста, если есть предложения, не стесняйтесь.
Спасибо!