成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

解決springboot 多線程使用MultipartFile讀取excel文件內容報錯問題

瀏覽:183日期:2022-06-16 18:18:44

springboot項目開啟多線程

解決springboot 多線程使用MultipartFile讀取excel文件內容報錯問題

解決springboot 多線程使用MultipartFile讀取excel文件內容報錯問題

啟動類加注解開啟 @EnableAsync,實現類方法加注解 @Async

前端頁面

解決springboot 多線程使用MultipartFile讀取excel文件內容報錯問題

報錯信息

java.io.FileNotFoundException: C:UsersdongaoAppDataLocalTemptomcat.1255209411477782290.8051workTomcatlocalhostROOTupload_7d7b99e5_38da_4a03_93e0_bff20cb48022_00000000.tmp (系統找不到指定的文件。) at java.io.FileInputStream.open0(Native Method) at java.io.FileInputStream.open(FileInputStream.java:195) at java.io.FileInputStream.<init>(FileInputStream.java:138) at org.apache.tomcat.util.http.fileupload.disk.DiskFileItem.getInputStream(DiskFileItem.java:194) at org.apache.catalina.core.ApplicationPart.getInputStream(ApplicationPart.java:100) at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest$StandardMultipartFile.getInputStream(StandardMultipartHttpServletRequest.java:250) at com.dongao.project.utils.UploadUtil.readExcel(UploadUtil.java:156) at com.dongao.project.utils.UploadUtil.readExcelToMap(UploadUtil.java:98) at com.dongao.project.importbatch.service.ImportBatchServiceImpl.importData(ImportBatchServiceImpl.java:161) at com.dongao.project.importbatch.service.ImportBatchServiceImpl$$FastClassBySpringCGLIB$$440ed2f6.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:749) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:88) at com.dongao.support.cat.CatUtils.proceed(CatUtils.java:18) at com.dongao.support.cat.CatSpringAop.getObject(CatSpringAop.java:26) at com.dongao.support.cat.CatSpringAop.aroundServiceMethod(CatSpringAop.java:22) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644) at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633) at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688) at com.dongao.project.importbatch.service.ImportBatchServiceImpl$$EnhancerBySpringCGLIB$$a16c4d4e.importData(<generated>) at com.dongao.project.importbatch.service.ImportBatchServiceImpl$$FastClassBySpringCGLIB$$440ed2f6.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:749) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:115) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748):36:46.137 25472 [threadPoolTaskExecutor-1] INFO com.ruoyi.framework.datasource.DynamicDataSourceContextHolder - [setDataSourceType,26] - 切換到SLAVE數據源:36:46.163 25472 [threadPoolTaskExecutor-1] ERROR org.springframework.aop.interceptor.SimpleAsyncUncaughtExceptionHandler - [handleUncaughtException,39] - Unexpected exception occurred invoking async method: public void com.dongao.project.importbatch.service.ImportBatchServiceImpl.importData(org.springframework.web.multipart.MultipartFile,java.lang.Long) throws java.lang.Exceptionjava.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.rangeCheck(ArrayList.java:653) at java.util.ArrayList.get(ArrayList.java:429) at com.dongao.project.importbatch.service.ImportBatchServiceImpl.importData(ImportBatchServiceImpl.java:178) at com.dongao.project.importbatch.service.ImportBatchServiceImpl$$FastClassBySpringCGLIB$$440ed2f6.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:749) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:88) at com.dongao.support.cat.CatUtils.proceed(CatUtils.java:18) at com.dongao.support.cat.CatSpringAop.getObject(CatSpringAop.java:26) at com.dongao.support.cat.CatSpringAop.aroundServiceMethod(CatSpringAop.java:22) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644) at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633) at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688) at com.dongao.project.importbatch.service.ImportBatchServiceImpl$$EnhancerBySpringCGLIB$$a16c4d4e.importData(<generated>) at com.dongao.project.importbatch.service.ImportBatchServiceImpl$$FastClassBySpringCGLIB$$440ed2f6.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:749) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:115) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)

問題分析

前端頁面傳過來的文件會存在臨時文件夾中,如下

C:UsersdongaoAppDataLocalTemptomcat.1255209411477782290.8051workTomcatlocalhostROOT

這個時候如果單線程操作,即正常程序流程解析是不會有問題的;

如果走異步多線程解析文件,主線程已經結束了,臨時文件會被清空,這時候再來讀取文件就會報錯

java.io.FileNotFoundException: C:UsersdongaoAppDataLocalTemptomcat.1255209411477782290.8051workTomcatlocalhostROOTupload_7d7b99e5_38da_4a03_93e0_bff20cb48022_00000000.tmp (系統找不到指定的文件。)

問題處理

由于主線程結束,臨時文件被清空,導致多線程業務類無法獲取到臨時文件而報錯(系統找不到指定的文件。),此時可以在主線程中轉換獲取文件流信息

InputStream is = file.getInputStream();

文件流信息存儲在內存中,多線程時也可以獲取到文件內容,解決問題。

以上這篇解決springboot 多線程使用MultipartFile讀取excel文件內容報錯問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: excel
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
欧美区国产区| 老汉av免费一区二区三区| 中文字幕欧美激情一区| 午夜精品影院在线观看| 26uuu国产一区二区三区| 日韩成人一级片| 国内综合精品午夜久久资源| 欧美精品粉嫩高潮一区二区| 亚洲精品成a人| av中文字幕亚洲| 欧美在线你懂得| 亚洲精品美国一| 99re在线视频这里只有精品| 欧美日韩综合不卡| 亚洲欧美综合另类在线卡通| 色综合天天视频在线观看 | 国产欧美日韩综合精品二区| 亚洲视频一区在线| 一区在线视频| 亚洲欧洲精品一区二区精品久久久| 国产精品www994| 欧美激情一区二区三区全黄| 国自产拍偷拍福利精品免费一| 欧美激情一区二区三区在线| 国产精品vip| 中文字幕在线不卡一区二区三区| 亚洲午夜高清视频| 亚洲欧洲精品一区二区三区| 亚洲激情在线| 亚洲午夜av在线| 在线观看日韩电影| 国内精品在线播放| 欧美一区二区三区爱爱| 成人伦理片在线| 久久亚洲综合av| 欧美另类专区| 国产精品伦一区| 亚洲国产裸拍裸体视频在线观看乱了中文| 一级精品视频在线观看宜春院 | 91成人在线免费观看| 久久国产三级精品| 91精品久久久久久久99蜜桃| 成人黄色综合网站| 国产精品久久久久aaaa| 99国内精品| 免费看黄色91| 日韩欧美国产一区二区三区| 不卡视频一二三四| 国产精品久久久久7777按摩| 免费日韩av| 极品美女销魂一区二区三区| 久久伊99综合婷婷久久伊| 亚洲激情社区| 免费成人av在线播放| 日韩欧美区一区二| 国产在线一区二区三区四区| 亚洲一二三四区不卡| 欧美日韩国产综合久久| 99久久99久久精品国产片果冻| 日韩美女久久久| 色94色欧美sute亚洲线路二| 成人性色生活片| 国产精品丝袜久久久久久app| 一区二区精品国产| 久久成人免费日本黄色| www国产成人免费观看视频 深夜成人网 | 裸体在线国模精品偷拍| 精品少妇一区二区三区在线播放| 欧美日韩成人一区二区三区| 亚洲一区av在线| 日韩欧美一级精品久久| 亚洲手机在线| 久久99国产精品久久99 | 午夜电影网亚洲视频| 欧美日韩一区二区三区免费看| 成人午夜在线视频| 亚洲激情成人在线| 91精品国产一区二区三区香蕉 | 免费观看在线色综合| 欧美哺乳videos| 夜夜嗨网站十八久久 | 欧美午夜免费| 日韩高清欧美激情| 欧美精品一区视频| 亚洲专区欧美专区| 国产福利精品导航| 最新不卡av在线| 欧美精品aⅴ在线视频| 国产精品www.| 国模冰冰炮一区二区| 中文字幕中文乱码欧美一区二区| 久久久精品动漫| k8久久久一区二区三区| 亚洲国产aⅴ天堂久久| 日韩欧美一卡二卡| 久久国产精品久久久久久电车| 成人网在线免费视频| 亚洲综合视频在线观看| 精品美女一区二区三区| 中日韩在线视频| 成人sese在线| 香蕉成人伊视频在线观看| 日韩视频免费观看高清在线视频| 日韩视频中文| 国产成a人亚洲| 亚洲福利视频一区二区| 久久九九久精品国产免费直播| 欧美怡红院视频| 亚洲黑丝在线| www.亚洲色图| 麻豆精品视频在线观看| 综合色天天鬼久久鬼色| 日韩一区二区不卡| 亚洲影视在线| 欧美成人国产| 国产尤物一区二区| 亚洲欧洲中文日韩久久av乱码| 91麻豆精品国产自产在线观看一区| 日韩亚洲欧美精品| 91丨九色丨国产丨porny| 麻豆传媒一区二区三区| 亚洲欧美日韩精品久久久久| 日韩精品一区二区在线观看| 色婷婷激情久久| 亚洲精品女人| 91小视频免费观看| 国产精一区二区三区| 亚洲va在线va天堂| 国产精品亲子乱子伦xxxx裸| 欧美电视剧在线看免费| 欧美午夜精品久久久| 日韩亚洲国产欧美| 欧美破处大片在线视频| 成人精品小蝌蚪| 精品综合免费视频观看| 午夜精品久久久久久久99水蜜桃 | 美日韩一区二区三区| 亚洲美女一区二区三区| 国产日产欧美一区二区三区| 欧美一级生活片| 欧美性猛交xxxxxx富婆| 久久高清免费观看| 亚洲高清不卡一区| 色综合天天视频在线观看| 国产成人aaaa| 精品午夜一区二区三区在线观看| 午夜在线电影亚洲一区| 亚洲另类在线制服丝袜| 欧美国产日韩精品免费观看| www国产精品av| 精品三级在线看| 欧美日韩电影在线| 欧美视频一区在线观看| 色综合久久精品| 久久国产成人| 亚洲在线日韩| 国产区二精品视| 亚洲人成在线影院| 国产综合色一区二区三区| 91麻豆免费在线观看| 成人国产精品免费网站| 国产大陆亚洲精品国产| 国产综合色在线视频区| 久久超级碰视频| 久久国产三级精品| 久久福利视频一区二区| 久久se精品一区精品二区| 天天操天天综合网| 亚洲超碰精品一区二区| 亚洲成人av电影在线| 亚洲图片欧美视频| 亚洲一二三四在线| 亚洲二区在线观看| 午夜激情综合网| 日本亚洲电影天堂| 丝袜美腿亚洲色图| 免费成人你懂的| 免费不卡在线观看| 黄页视频在线91| 国产麻豆成人精品| 成人免费高清在线| 97精品国产97久久久久久久久久久久| 成人在线一区二区三区| 成人永久免费视频| av网站一区二区三区| 99久久精品国产一区二区三区| 91在线看国产| 国产在线精品二区| 一区二区三区四区五区精品视频| 国产精品久久久久久久久久直播| 免费永久网站黄欧美| 在线一区二区观看| 欧美日韩成人高清| 欧美一区二区三区四区在线观看| 欧美电影在哪看比较好| 日韩精品中文字幕一区二区三区| 久久久久国产一区二区三区四区 | 欧美日韩精品三区| 4438x成人网最大色成网站| 精品免费国产一区二区三区四区|