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: 

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

 相关推荐:

posted @ 2022-06-19 14:30  Marydon  阅读(1509)  评论(0编辑  收藏  举报