java.lang.ClassNotFoundException: org.apache.poi.util.TempFileCreationStrategy解决方案
再用easyExcel导出的时候,写到如下代码报错EasyExcel.write(response.getOutputStream(), Excel.class).sheet("导出信息").doWrite(list);报如下几种错误,奇怪的是每次都报的不一样java.lang.NoClassDefFoundError: Could not initialize class com.alibaba
·
再用easyExcel导出的时候,写到如下代码报错
EasyExcel.write(response.getOutputStream(), Excel.class).sheet("导出信息").doWrite(list);
报如下几种错误,奇怪的是每次都报的不一样
java.lang.NoClassDefFoundError: Could not initialize class com.alibaba.excel.write.ExcelBuilderImpl
java.lang.ClassNotFoundException: org.apache.poi.util.TempFileCreationStrategy
java.lang.NoClassDefFoundError: Could not initialize class com.alibaba.excel.write.ExcelBuilderImpl
后来排查很久发现是easyExcel版本是2.2.3,我用的poi版本是3.9,导致有冲突,网上查3.17兼容,或则升级更高的4.1.2
<!--easyExcel-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.3</version>
</dependency>
<!-- POI导入导出 -->
<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>
重新导出发现有报了一个错误如下
com.alibaba.excel.exception.ExcelGenerateException: java.lang.NoClassDefFoundError: org/apache/commons/collections4/ListValuedMap
发现是我船的数据是集合要处理,引用新的依赖commons-collections4
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.1</version>
</dependency>
如果还报如下错误:
com.alibaba.excel.exception.ExcelGenerateException: java.lang.NoClassDefFoundError: net/sf/cglib/beans/BeanMap
缺少cglib代理包所致,就引入cglib依赖
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>3.1</version>
</dependency>
总结:poi版本与easyExcel版本一定要兼容。
更多推荐
所有评论(0)