Weblogic上Easyexcel报com.alibaba.excel.exception.ExcelGenerateException: Can not close IO解决方案

背景

最近在使用Easyexcel做导出Excel,发布到Weblogic上报错信息如下:

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.ExcelWriter.finish(ExcelWriter.java:298)
	at com.alibaba.excel.write.builder.ExcelWriterSheetBuilder.doWrite(ExcelWriterSheetBuilder.java:135)
	Truncated. see log file for complete stacktrace
Caused By: java.lang.NoClassDefFoundError: Could not initialize class org.apache.poi.ooxml.POIXMLTypeLoader

Easyexcel依赖如下:

<dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>easyexcel</artifactId>
      <version>3.0.5</version>
    </dependency>

解决方案

 经过排查发现是Easyexcel在Webloigc上运行时,找不到poi-ooxml.jar。经过尝试发现是poi.jar、poi-ooxml.jar、poi-ooxml-schemas.jar默认的版本太高导致,easyexcel 3.0.5版本使用的是4.1.2的poi包。最终经过不多尝试,将poi.jar、poi-ooxml.jar、poi-ooxml-schemas.jar的版本修改为3.17解决。

完整依赖如下:

<dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>easyexcel</artifactId>
      <version>3.0.5</version>
    </dependency>

    <dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi</artifactId>
      <version>3.17</version>
    </dependency>
    <dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi-ooxml</artifactId>
      <version>3.17</version>
    </dependency>
    <dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi-ooxml-schemas</artifactId>
      <version>3.17</version>
    </dependency>

猜你喜欢

转载自blog.csdn.net/u011482647/article/details/126623020