日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

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

瀏覽:193日期: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
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久久精品午夜少妇| 国产福利电影在线播放| 精品精品99| 日韩精品福利一区二区三区| 午夜久久tv| 国产精品99一区二区三| 色爱综合网欧美| 国语精品一区| 中文字幕日本一区二区| 日韩视频二区| 老司机久久99久久精品播放免费| 在线 亚洲欧美在线综合一区| 香蕉久久精品| 亚洲第一精品影视| 久久亚洲精品中文字幕蜜潮电影| 午夜精品久久久久久久久久蜜桃| 久久久天天操| 婷婷综合亚洲| 免费观看久久久4p| 免费看欧美美女黄的网站| 午夜在线视频观看日韩17c| 亚洲精品系列| 欧美一区激情| 日韩精品免费视频一区二区三区| 日本不卡视频在线观看| 国产精品九九| 91精品韩国| 久久国产精品久久w女人spa| 老牛国产精品一区的观看方式| 日韩一区欧美二区| 日本欧美韩国一区三区| 国产激情精品一区二区三区| 日韩免费福利视频| 久久精品99久久无色码中文字幕| 欧美va亚洲va日韩∨a综合色| 免费一级片91| 精品国产三区在线| 亚洲www啪成人一区二区| 成人日韩精品| 爽好久久久欧美精品| 麻豆国产精品一区二区三区| 韩国久久久久久| 欧美91视频| 日韩国产在线观看| 日韩精品中文字幕第1页| 中文字幕av一区二区三区人| 国产精品美女午夜爽爽| 欧美一区久久久| 亚洲伊人精品酒店| 日韩不卡一区| 亚洲另类视频| 精品视频99| 亚洲深夜福利| 国产91在线播放精品| 亚洲激情精品| 国产精品资源| 国产综合欧美| 国产精品欧美在线观看| 99视频一区| 欧美激情在线精品一区二区三区| 久久亚洲在线| 日韩欧美中文字幕在线视频| 91亚洲国产成人久久精品| 亚洲精品护士| 免费高潮视频95在线观看网站| 亚洲一级淫片| 久久久久国产精品一区三寸| 日本a口亚洲| 国产精品黑丝在线播放| 亚洲+小说+欧美+激情+另类| 日本а中文在线天堂| 亚洲狼人精品一区二区三区| 日韩深夜视频| 国产精品黄色| 欧美一级网站| 国产免费成人| 国产盗摄——sm在线视频| 欧美激情 亚洲a∨综合| 一区二区国产在线观看| 久久婷婷丁香| 国产一区二区三区天码| 日韩欧乱色一区二区三区在线| 亚洲一区二区三区四区五区午夜 | 亚洲三级在线| 日韩免费福利视频| 国产精品高潮呻吟久久久久| 91久久中文| 香蕉成人av| 美女视频免费精品| 日韩高清一区二区| 午夜精品亚洲| 亚洲精品国产嫩草在线观看| 国产剧情一区二区在线观看| 首页国产欧美久久| 天堂√中文最新版在线| 欧美啪啪一区| 中文字幕免费一区二区| 91精品高清| 国产99亚洲| 国产视频亚洲| 久久久久国产精品一区二区| 国产精品一线天粉嫩av| 中文字幕一区日韩精品| 婷婷精品视频| 久久一区二区三区电影| 91日韩欧美| 国产高清亚洲| 天海翼亚洲一区二区三区| 999国产精品| 日本精品在线播放| 欧美日韩一区自拍| 日本不卡一二三区黄网| 久久成人国产| 在线国产一区二区| 亚洲成人av观看| 久久免费影院| 免费看av不卡| 97精品一区| 久久精品国产成人一区二区三区| 日韩一二三区在线观看| 欧美专区在线| 日韩av在线免费观看不卡| 亚洲综合三区| 午夜久久福利| 日韩欧美在线中字| 成人精品视频| 国产一区二区三区探花| 91精品国产成人观看| 国产伦久视频在线观看| 国产成人精品一区二区免费看京 | 欧美天堂视频| 毛片在线网站| 精品美女在线视频| 欧美永久精品| 91精品国产自产在线丝袜啪| 欧美a级一区二区| 久久伦理在线| 桃色一区二区| 免费的成人av| 成人国产精品| 日韩中文字幕91| 亚洲激情偷拍| 91成人精品| 日韩高清一区| 日韩在线观看不卡| 亚洲欧美网站在线观看| 中文字幕日本一区二区| 亚州精品视频| 热三久草你在线| 丝袜美腿一区二区三区| 精品视频91| 先锋影音国产一区| 亚洲青青久久| 不卡一二三区| 亚洲精品日本| 超碰超碰人人人人精品| 在线看片日韩| 欧美日韩伊人| 久久久久99| 国产亚洲久久| 久久中文视频| 麻豆精品少妇| 久久亚洲影院| 欧美日一区二区三区在线观看国产免| 日本午夜精品视频在线观看| 免费在线观看视频一区| 五月精品视频| 亚洲一区二区免费看| 亚洲天堂久久| 国产精品久久久久久妇女| 亚洲精品国产嫩草在线观看| yellow在线观看网址| 日本亚洲视频| 日韩av字幕| 亚洲欧美久久| 黑丝一区二区| 久久精品亚洲人成影院| 欧美一区二区三区免费看| 亚洲日本在线观看视频| 福利欧美精品在线| 欧美成人a交片免费看| 日韩一区中文| 视频一区视频二区中文| 国产aⅴ精品一区二区三区久久| 国产一区二区视频在线看| 日韩精品亚洲一区二区三区免费| 日韩和欧美一区二区三区| 免费国产自久久久久三四区久久| 91精品1区| 国产在线|日韩| re久久精品视频| 久久99青青| 美女福利一区二区三区| 深夜视频一区二区| 国产成人精选| 91精品一区二区三区综合在线爱| 国产一区二区三区黄网站| 国产精品麻豆成人av电影艾秋| 久久亚洲不卡| 国产精品一国产精品|