При чтении xml файла в методе @Asynk Spring Boot Чтение файла происходит со второго вызова метода
Вызываю метод importToDB
из контроллера:
@Async
public CompletableFuture<String> importToDB(final MultipartFile file, int num) {
System.out.println("Выполняем в потоке: " + Thread.currentThread().getName() + "num = " + num);
numOfTask.put(num, "IN PROGRESS");
Workbook workbook;
try {
workbook = new XSSFWorkbook(file.getInputStream());
} catch (IOException exception) {
numOfTask.put(num, "ERROR");
System.out.println(exception);
return CompletableFuture.completedFuture("Ошибка открытия файла" + file.getName() + " thread: " + Thread.currentThread().getName());
}
Sheet datatypeSheet = workbook.getSheetAt(0);
Iterator<Row> iterator = datatypeSheet.iterator();
// .....
}
После запуска Spring Boot приложения первое обращение к этому методу вываливается на IOException:
java.nio.file.NoSuchFileException: C:\Users\Leonid\AppData\Local\Temp\tomcat.8080.86797283140162075\work\Tomcat\ локальный\ROOT\upload_c86caecb_7a98_472b_8ebb_c6342c71c40a_00000000.tmp
Последующие вызовы метода отрабатывают без ошибок. В чем может быть проблема? Может, я что-то упустил.
Источник: Stack Overflow на русском