1、报错现象:
2、解决方法:
删除poi-ooxml-schemas jar包
<exclusion>
<artifactId>poi-ooxml-schemas</artifactId>
<groupId>org.apache.poi</groupId>
</exclusion>
本文出现的问题,是删除了easyexcel下的这个jar包
3、问题定位过程
1、先百度java.lang.NoSuchFieldError这个异常的意思,得知这个跟jar包冲突有关系
2、根据上述的截图,知道冲突的方法所在的jar包是poi-ooml,找到这一行代码,发现是存在这个factory的。
3、怀疑服务上有两个版本的这个jar包导致的,使用的版本不是预期的这个版本找不到这个代码。登录服务器确认,这个jar包只有这一个版本,怀疑点不对。
4、在从代码入手,查看factory所在的类,ThemeDocument
全代码搜索这个类,Idea的快捷键(ctrl+N)发现有两个jar包包含这个类,poi-ooxml-lite和前面提到的poi-ooxml-schemas这个jar包
已经知道问题原因,那就需要确认怎么删除poi-ooxml-schemas jar包
使用maven helper插件,确认这个poi-ooxml-schemas jar包依赖关系,知道跟easyexcel这个有关系