Caused by: java.lang.NoSuchMethodError: org.apache.poi.util.TempFile.setTempFileCreationStrategy
1.情景展示
使用easyExcel,生成excel文件,报错信息如下:
Caused by: java.lang.NoSuchMethodError: org.apache.poi.util.TempFile.setTempFileCreationStrategy(Lorg/apache/poi/util/TempFileCreationStrategy;)V
2.具体分析
jar包冲突导致
3.解决方案
easyexcel,2.2.6版本
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.6</version>
</dependency>
对应的是poi版本是:3.17
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</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-schemas</artifactId>
<version>3.17</version>
</dependency>
如果,上述三个都加上,且版本保持一致,还报同样地错误,那说明是你的开发工具出了问题。
以我为例,我使用的是非maven老项目,这就需要自己手动往项目的lib目录下添加jar包,并手动将其构建到项目当中。
如果有低版本或者高版本,首先需要将其从项目构建当中排除,还要将其手动删除。(我使用的是eclipse,必须将多余的jar包删掉,否则,还是会报上面的错误)。
一般情况下,到了这里就结束了。
如果报其它错,可以参考下面。
报这个错:
com.alibaba.excel.exception.ExcelGenerateException: java.lang.NoClassDefFoundError: org/apache/commons/collections4/ListValuedMap
接着加:
<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
接着加:
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>2.2</version>
</dependency>
如果这个jar包的版本号不对,回报如下错误:
java.lang.IncompatibleClassChangeError:
本文来自博客园,作者:Marydon,转载请注明原文链接:https://www.cnblogs.com/Marydon20170307/p/16390465.html