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

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

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

瀏覽:195日期: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久久,三上悠亚国产精品一区二区三区
国产精品jk白丝蜜臀av小说| 午夜久久av| 欧美黄色一区| 国产精品美女午夜爽爽| 日韩三区四区| 69堂免费精品视频在线播放| 久久国产乱子精品免费女| 国产精品极品国产中出| 粉嫩av一区二区三区四区五区 | 蜜臀a∨国产成人精品| 日韩在线黄色| 麻豆91在线播放| 久久视频一区| 视频在线观看一区二区三区| 日韩国产在线观看一区| 国产福利亚洲| 日韩欧美少妇| 亚洲一区二区三区免费在线观看| 视频一区日韩精品| 久久精品国内一区二区三区| 麻豆mv在线观看| 午夜久久美女| 日韩成人一级| 97人人精品| 先锋影音久久久| 久久精品凹凸全集| 日韩av福利| 综合激情婷婷| 精品国产三区在线| 午夜欧美精品| 久久国产尿小便嘘嘘| 色婷婷亚洲mv天堂mv在影片| 欧美粗暴jizz性欧美20| 婷婷精品在线| 超碰在线99| 三级欧美韩日大片在线看| 欧美激情日韩| 红桃视频国产一区| 欧美交a欧美精品喷水| 精品捆绑调教一区二区三区| 综合国产视频| 欧美好骚综合网| 蜜芽一区二区三区| 成人一二三区| 蜜桃av一区二区在线观看| 麻豆成人综合网| 99视频在线精品国自产拍免费观看| 日本免费一区二区视频| 肉色欧美久久久久久久免费看| 亚洲三级网站| 日韩理论视频| 日本不卡视频一二三区| 特黄特色欧美大片| 欧美精品中文| 欧美另类综合| 国模大尺度视频一区二区| 亚洲自啪免费| 精品视频一二| 亚洲乱码久久| 婷婷综合六月| 国产日韩欧美| 欧美在线影院| 久久精品毛片| 亚洲日本欧美| 激情久久久久久久| 久久99国产精品视频| 亚洲日本三级| 亚洲国产专区| 国产91欧美| 欧美色综合网| 日韩精品一级二级| 亚洲五月婷婷| 成人在线超碰| 欧美日韩1区2区3区| 国产午夜久久| 日韩精品一卡| 成人午夜网址| 国产探花一区二区| 亚洲免费影视| 99精品综合| 色乱码一区二区三区网站| 欧美日韩午夜电影网| 午夜在线视频观看日韩17c| 欧美成人基地| jizzjizz中国精品麻豆| 国产精品欧美在线观看| 日韩一区网站| 视频在线在亚洲| 欧美日韩国产在线一区| 日韩精品91| 国产成人a视频高清在线观看| 国产欧美激情| 人人爱人人干婷婷丁香亚洲| 乱人伦精品视频在线观看| 久久国产欧美| 国产传媒av在线| 美女精品久久| 国产精品久久久久久模特| 日韩精品欧美大片| 久久av在线| 日韩一级网站| 欧美精品九九| 欧美日韩精品一本二本三本| 久久婷婷亚洲| 日韩精品一区二区三区免费观影| 国精品产品一区| 久久这里只有| 欧美精品1区| 91精品丝袜国产高跟在线| 亚洲制服一区| 亚洲精品日本| 日韩精选在线| 日韩精品欧美精品| 日韩av不卡在线观看| 日韩精品一页| 日本va欧美va欧美va精品| 日韩高清一级| 青青国产精品| 久久国产乱子精品免费女| 国产毛片精品| 美女久久99| 国产精品99视频| 欧美天堂视频| 欧美二三四区| 蜜臀久久99精品久久一区二区| 亚洲福利精品| 国产精品日本| 中文一区一区三区免费在线观 | 国产精品99久久免费| 国产精品白丝一区二区三区| 麻豆久久一区二区| 国产一区2区| 亚洲伦乱视频| 久久精品免费一区二区三区 | 午夜亚洲福利| 日本午夜精品一区二区三区电影| 日本va欧美va精品发布| 国产精品入口久久| 国产成人精品三级高清久久91| 亚洲伦乱视频| 一本色道久久精品| 亚洲18在线| 国产精品蜜月aⅴ在线| 精品久久97| 亚洲视频综合| 亚洲欧美专区| 久久亚洲黄色| 久久久久久久久丰满| 亚洲免费中文| 国产欧美啪啪| 日韩在线二区| 人人爽香蕉精品| 国产精品亚洲四区在线观看| 国产精品yjizz视频网| 在线观看免费一区二区| 亚洲精品动态| 久久午夜影院| 香蕉久久精品| 蜜臀久久99精品久久久画质超高清| 91嫩草精品| av在线资源| 麻豆久久精品| 麻豆91在线播放| 在线国产一区二区| 日本午夜精品久久久| 极品av在线| 亚洲伊人精品酒店| 精品香蕉视频| 日韩午夜av| 国产精品天天看天天狠| 精品捆绑调教一区二区三区| 亚洲欧美日本国产| 综合日韩av| 久久亚洲不卡| 精品国产精品国产偷麻豆 | 久久人人97超碰国产公开结果| 亚洲精品综合| 日韩1区在线| 亚洲精品少妇| 麻豆视频在线看| 综合激情一区| 麻豆mv在线观看| 日欧美一区二区| 日韩免费看片| 中文字幕一区二区三区日韩精品| 欧美国产美女| 日韩在线观看中文字幕| 日韩不卡免费高清视频| 欧美一级网站| 欧美日韩国产免费观看视频| 国产精品xxx在线观看| 午夜日韩福利| 精品国产亚洲一区二区三区大结局| 亚洲一区日韩| 欧美成人a交片免费看| 日本a级不卡| 999在线观看精品免费不卡网站| 精品无人区麻豆乱码久久久| 视频一区日韩精品| 91精品在线观看国产|