为什么在java spring boot中使用multipartFile @Async时会出现NoSuchFileException?

问题描述 投票:0回答:1

我可以在不使用@Async的情况下将multipartFile.getInputStream()与扫描仪一起使用,但是当我使用multipartFile.getInputStream()流获取文件时,它显示的文件路径不正确(使用@Async)。

MultipartFileReader:文件studentId.txt没有有效内容!

错误

java.nio.file.NoSuchFileException

@Component
@Slf4j
public class MultipartFileReader {
     public List<String> read(MultipartFile multipartFile) throws IOException {
         List<String> readLineList = new ArrayList<>();

         try {
             Scanner myReader = new Scanner(multipartFile.getInputStream());

StudentService.java

  @Async
     public void workStudent(StudentData studentData) throws IOException {
...
List<Long> studentIdList = multipartFileReader.read(studentData.getstudentIdFile()).stream()
                     .map(Long::parseLong).toList();
java spring asynchronous multipartfile
1个回答
0
投票

我假设您正在异步处理本地文件,因为您的程序启动新线程并尝试设置输入流。

要修复此问题,您可以将文件上传到本地存储(f.e.)并从中读取它,或者将文件读入字节数组,然后将字节数组传递给异步方法。

© www.soinside.com 2019 - 2024. All rights reserved.