zoukankan      html  css  js  c++  java
  • 【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#ProExportSkuDataJob   Job execute fail,errMsg= com.alibaba.excel.exception.ExcelGenerateException: Can not close IO
        at 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()V
        at 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 class
        at 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 class
        at 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.findClassInternal(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

  • 相关阅读:
    .NET网址集合(自己备用)
    在所有页面自动注册prefix
    ASP.NET里实现水晶报表的打印
    C#经典书籍推荐
    自定义file类型input框样式的方法
    安装VS2008后要做的事
    ASP.NET中使用Include的要点
    增加新记录时ObjectDataSoruce和FormViw中的相关事件使用总结
    兼容IE/FF的手动触发事件的函数 ( forward )
    ASP.NET 自定义的一个日期验证控件
  • 原文地址:https://www.cnblogs.com/sxdcgaq8080/p/11791900.html
Copyright © 2011-2022 走看看