当前位置: 首页 >服务端 > 【EasyExcel】使用easyExcel过程中,项目报错的解决集合

【EasyExcel】使用easyExcel过程中,项目报错的解决集合

 

报错:Can not close IO

[ERROR] 2019-11-02 13:51:21.210 [ProExportSkuDataJob-1455-TaskThread-1] [com..proengine.domain.common.util.DpeLogUtil] [] - fd3f7b29-20191102134946773,dpePartner#ProExportSkuDataJobJob execute fail,errMsg= com.alibaba.excel.exception.ExcelGenerateException: Can not close IOat com.alibaba.excel.context.WriteContextImpl.throwCanNotCloseIo(WriteContextImpl.java:390)at com.alibaba.excel.context.WriteContextImpl.finish(WriteContextImpl.java:352)at com.alibaba.excel.write.ExcelBuilderImpl.finish(ExcelBuilderImpl.java:106)at com.alibaba.excel.write.ExcelBuilderImpl.addContent(ExcelBuilderImpl.java:98)at com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:155)at com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:140)at com.alibaba.excel.write.builder.ExcelWriterSheetBuilder.doWrite(ExcelWriterSheetBuilder.java:134)at com..proengine.partner.export.job.ProExportSkuDataJob.createXlsxFile2(ProExportSkuDataJob.java:178)at com..proengine.partner.export.job.ProExportSkuDataJob.executeTask(ProExportSkuDataJob.java:83)at com..dispatcher.sdk.task.AbstractSimpleTask.execute(AbstractSimpleTask.java:56)at com..dispatcher.sdk.thread.TaskExecuteThread.run(TaskExecuteThread.java:59)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)at java.lang.Thread.run(Thread.java:745)Caused by: java.lang.NoSuchMethodError: org.apache.poi.ss.usermodel.Workbook.close()Vat com.alibaba.excel.context.WriteContextImpl.finish(WriteContextImpl.java:350)... 12 more

 

 

解决方法:

将项目中pom.xml中依赖的  POI相关的版本升级到  3.17以上  【easyexcel版本  2.0.5】

我自己将POI版本升级到了4.1.0

 

 

 

 

 

 

报错:

java.lang.IncompatibleClassChangeError: class net.sf.cglib.core.DebuggingClassWriter has interface org.objectweb.asm.ClassVisitor as super class

Could not initialize class net.sf.cglib.beans.BeanMap$Generator

 

com.alibaba.excel.exception.ExcelGenerateException: java.lang.IncompatibleClassChangeError: class net.sf.cglib.core.DebuggingClassWriter has interface org.objectweb.asm.ClassVisitor as super classat com.alibaba.excel.write.ExcelBuilderImpl.addContent(ExcelBuilderImpl.java:99)at com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:155)at com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:140)at com..proengine.partner.export.job.ProExportSkuDataJob.createXlsxFile2(ProExportSkuDataJob.java:182)at com..proengine.partner.export.job.ProExportSkuDataJob.executeTask(ProExportSkuDataJob.java:83)at com..dispatcher.sdk.task.AbstractSimpleTask.execute(AbstractSimpleTask.java:56)at com..dispatcher.sdk.thread.TaskExecuteThread.run(TaskExecuteThread.java:59)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)at java.lang.Thread.run(Thread.java:745)Caused by: java.lang.IncompatibleClassChangeError: class net.sf.cglib.core.DebuggingClassWriter has interface org.objectweb.asm.ClassVisitor as super classat java.lang.ClassLoader.defineClass1(Native Method)at java.lang.ClassLoader.defineClass(ClassLoader.java:760)at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)at org.apache.catalina.loader.WebappClassLoaderBase.findClassInteal(WebappClassLoaderBase.java:2567)at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:859)at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1302)at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167)at net.sf.cglib.core.DefaultGeneratorStrategy.getClassVisitor(DefaultGeneratorStrategy.java:30)at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:24)at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:144)at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:116)at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108)at net.sf.cglib.beans.BeanMap$Generator.<clinit>(BeanMap.java:64)at net.sf.cglib.beans.BeanMap.create(BeanMap.java:56)at com.alibaba.excel.write.ExcelBuilderImpl.addJavaObjectToExcel(ExcelBuilderImpl.java:201)at com.alibaba.excel.write.ExcelBuilderImpl.addOneRowOfDataToExcel(ExcelBuilderImpl.java:128)at com.alibaba.excel.write.ExcelBuilderImpl.doAddContent(ExcelBuilderImpl.java:79)at com.alibaba.excel.write.ExcelBuilderImpl.addContent(ExcelBuilderImpl.java:93)... 9 more

 

 

解决方法:

是因为项目中有cglib的jar包  和 asm的jar包冲突。解决掉jar包冲突即可。

 

解决jar包冲突的方法:

https://www.cnblogs.com/sxdcgaq8080/p/11791897.html

 

作者:Angel挤一挤
来源链接:https://www.cnblogs.com/sxdcgaq8080/p/11791900.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaclub.cn/server/91413.html

标签:EasyExcel
分享给朋友:

“【EasyExcel】使用easyExcel过程中,项目报错的解决集合” 的相关文章

EasyExcel引入 2022年06月27日 20:10:45
如何让excel文件读取变得更简单 2022年06月30日 14:06:03
EasyExcel小试牛刀 2022年07月02日 20:15:48
EasyExcel简单使用 2022年07月03日 15:26:23
EasyExcel按照模板填充数据 2022年07月11日 20:35:09
EasyExcel导入导出excel 2022年08月01日 15:53:48
easyexcel注解 2022年08月01日 16:45:37
easyExcel的使用案例 2022年08月01日 17:04:07