成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_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中文一区二区三区桃花岛| 久久久亚洲综合| 五月激情综合色| 日韩欧美一级精品久久| 美国毛片一区二区| 欧美一二三在线| 久久99精品久久久久久国产越南 | 成人免费高清视频| 国产精品国产三级国产普通话三级| 成人av先锋影音| 亚洲中国最大av网站| 日韩一区二区三| 成人午夜精品一区二区三区| 亚洲色图视频网| 欧美日韩精品免费| 国产成人av网站| 一区二区三区欧美| 日韩欧美色综合网站| 精品一区二区三区不卡| 欧美一级一区二区| 国产电影一区二区三区| 亚洲精品免费视频| 亚洲精品一区二区三区香蕉| 色综合色综合色综合色综合色综合 | 亚洲国产精品高清| av在线不卡电影| 丝袜亚洲另类欧美综合| 久久久.com| 欧美高清激情brazzers| 国产成人精品www牛牛影视| 亚洲成年人网站在线观看| 国产欧美一区二区精品忘忧草| 色婷婷亚洲一区二区三区| 青青草97国产精品免费观看 | 免费成人av资源网| 综合久久久久久久| 精品成人免费观看| 欧美日韩一区小说| 波多野结衣一区二区三区| 日本va欧美va瓶| 亚洲综合一二三区| 国产精品毛片a∨一区二区三区| 欧美日本在线播放| 在线免费观看日本一区| 不卡高清视频专区| 国产精品69久久久久水密桃| 日韩精品91亚洲二区在线观看 | 日日嗨av一区二区三区四区| 欧美国产综合一区二区| 欧美一区中文字幕| 欧美日韩一级黄| 欧美午夜宅男影院| 精品视频999| 欧美日韩国产小视频| 欧美婷婷六月丁香综合色| 成人av网站在线观看| 国产电影一区二区三区| 国产一区在线看| 国内精品第一页| 美国欧美日韩国产在线播放| 午夜成人免费电影| 亚洲成a人v欧美综合天堂| 艳妇臀荡乳欲伦亚洲一区| 中文一区一区三区高中清不卡| 欧美tickling网站挠脚心| 欧美一区二区三区四区五区| 欧美精品色综合| 欧美亚洲综合另类| 高清shemale亚洲人妖| 国产一区二区主播在线| 国产伦精一区二区三区| 成人黄色电影在线 | 欧美精品aⅴ在线视频| 91高清视频在线| 在线观看日韩av先锋影音电影院| 国产a级毛片一区| 成人av电影在线播放| 色婷婷综合久色| 欧美性色黄大片| 91精品国产日韩91久久久久久| 欧美亚洲禁片免费| 精品亚洲免费视频| 久久激五月天综合精品| 国产一区二区电影| 99久久精品免费观看| 欧美在线观看一区二区| 欧美人牲a欧美精品| 6080亚洲精品一区二区| 日韩一区二区三区观看| 26uuuu精品一区二区| 26uuuu精品一区二区| 久久这里都是精品| 1024亚洲合集| 日韩高清中文字幕一区| 美女国产一区二区三区| 国产99久久久精品| 国产91精品一区二区| 一本一道久久a久久精品| 欧美日韩你懂的| 久久久久久久综合色一本| 亚洲免费观看高清完整版在线观看| 亚洲精品视频自拍| 看电影不卡的网站| 成人一区在线看| 裸体一区二区三区| 成人动漫精品一区二区| 在线看不卡av| 欧美国产成人精品| 日韩中文字幕亚洲一区二区va在线| 久久er99精品| 成人一道本在线| 欧美久久高跟鞋激| 国产精品天干天干在观线| 亚洲国产wwwccc36天堂| 国产 欧美在线| 91精品午夜视频| 国产精品久久久久四虎| 午夜精品久久久久久| 91免费小视频| 久久蜜臀中文字幕| 亚洲丶国产丶欧美一区二区三区| 成人性生交大片免费看视频在线 | 成人国产精品免费观看视频| 5月丁香婷婷综合| 中文字幕免费观看一区| 午夜精品福利在线| 91丝袜国产在线播放| 久久蜜桃av一区二区天堂| 天堂影院一区二区| 欧美亚洲自拍偷拍| 综合久久给合久久狠狠狠97色| 久久精品99国产精品日本| 本田岬高潮一区二区三区| 国产精品丝袜黑色高跟| jlzzjlzz亚洲日本少妇| 日韩精品一区二区三区中文精品| 免费成人在线影院| 97久久人人超碰| 国产精品美女www爽爽爽| 久久精品国产免费看久久精品| 欧美三级视频在线观看| 国产精品国产自产拍高清av| 日韩制服丝袜av| 在线欧美日韩国产| 亚洲精品免费一二三区| 91极品美女在线| 亚洲精品国产精华液| 国产精品911| 欧美国产欧美综合| av毛片久久久久**hd| 亚洲日本中文字幕区| 欧美日韩成人综合| 久久精品国产色蜜蜜麻豆| 欧美不卡一区二区三区四区| 奇米精品一区二区三区在线观看| 欧美美女直播网站| 亚洲成人av一区| 欧美电影免费提供在线观看| 精品一区二区三区在线观看| 91精品福利在线一区二区三区| 日韩精品欧美精品| 欧美经典一区二区| 欧洲在线/亚洲| 日本成人在线不卡视频| 精品久久国产97色综合| 成人综合在线观看| 亚洲欧洲国产日韩| 制服丝袜中文字幕一区| 国产精品正在播放| 一区二区三区四区激情| 欧美日韩美女一区二区| 免费在线观看精品| 亚洲欧美在线观看| 日韩亚洲欧美综合| av一区二区三区| 日韩专区中文字幕一区二区| 久久久噜噜噜久久人人看| 91国偷自产一区二区三区成为亚洲经典 | 国产清纯美女被跳蛋高潮一区二区久久w| 亚洲午夜私人影院| 国产午夜精品一区二区三区嫩草| 成人综合日日夜夜| 日本女人一区二区三区| 亚洲裸体xxx| 国产日韩精品一区二区浪潮av | 日韩电影免费在线| 亚洲欧美怡红院| 日韩欧美的一区| 欧美性欧美巨大黑白大战| 成人综合在线视频| 经典三级视频一区| 亚洲精品国产无套在线观| 26uuu另类欧美| 日韩欧美国产1| 欧美日韩电影一区| 欧洲人成人精品| 91丨国产丨九色丨pron| 91视频免费看| 91女神在线视频|