使用easypoi-spring-boot-starter 4.1.1导入excel报错NoSuchMethodError和NoSuchMethodError

前言

使用easypoi进行excel的导入遇到的错误以及解决办法

easypoi项目地址:https://gitee.com/lemur/easypoi

easypoi的Maven依赖:

<dependency>
    <groupId>cn.afterturn</groupId>
    <artifactId>easypoi-spring-boot-starter</artifactId>
    <version>4.1.1</version>
</dependency>

报错一:NoSuchMethodError

报错描述:

NoSuchMethodError: org.apache.xmlbeans.XmlOptions.setEntityExpansionLimit()

解决办法:

XmlOptions.setEntityExpansionLimit() 错误,是 jar 包版本引起的,3.0 版本以下的 xmlbeans 中根本没有该方法,需要将jar升级到 3.0+ 版本才可以。另外加入 xmlbeans 的jar以后,不要再加入 xbean.jar

XMLBeans是什么?XMLBeans 是一种 Java 技术,它用于处理 XML 数据。XMLBeans 提供了一种将 XML 数据映射到 Java 对象的方式,从而可以轻松地在 Java 应用程序中处理和操作 XML 数据。

引入以下Maven依赖即可解决报错问题

<dependency>
    <groupId>org.apache.xmlbeans</groupId>
    <artifactId>xmlbeans</artifactId>
    <version>3.1.0</version>
</dependency>

报错二:NoSuchMethodError

报错描述:

org.apache.commons.lang3.StringUtils.isNoneEmpty([Ljava/lang/CharSequence;)Z
        at org.activiti.editor.language.json.converter.BpmnJsonConverter.convertToJson(BpmnJsonConverter.java:242)
        at org.activiti.editor.ui.ConvertProcessDefinitionPopupWindow$2.buttonClick(ConvertProcessDefinitionPopupWindow.java:141)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

解决办法:

commons-lang3版本太低了,没有isNoneEmpty方法,升级至3.9及之后的版本即可

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.9</version>
</dependency>

参考

  1. https://blog.csdn.net/hanjiaqun/article/details/102705107
  2. https://alidocs.dingtalk.com/i/nodes/oP0MALyR8k7ANjxjhjjPYaL783bzYmDO

你可能感兴趣的:(消灭bug,excel)