POI 4.x深坑:NoSuchMethodError: org.apache.xmlbeans.XmlOptions.setEntityExpansionLimit()
今天在做一个Excel写入时,碰到一个问题
NoSuchMethodError: org.apache.xmlbeans.XmlOptions.setEntityExpansionLimit()
根据多年摸鱼经验来看,这么明显的错误,奈我何呢?不就是找不到方法吗?果断找到源码类中:
Crtl + F 搜索,发现果然没有:setEntityExpansionLimit 方法,好解决换版本(此时我用的 xmlbeans 是2.3.1版本)
经过百度的一番考察,发现大家对 2.6.0 版本的 xmlbeans 特别看好,那就决定是你了,下载后直接导入jar运行
仍然是:NoSuchMethodError: org.apache.xmlbeans.XmlOptions.setEntityExpansionLimit()
赶紧打开源码一看,发现仍然没有 setEntityExpansionLimit 方法
王德发??? 什么情况??剧情不一样啊这。。
赶紧又去下载了 3.1.0 版本,这次咱先不着急导入,用压缩工具打开jar包,找到:org/apache/xmlbeans/XmlOptions.class 文件用 神器 IDEA 直接打开看看
Crtl + F 搜索,终于发现了梦寐以求的小可爱就在这里!!!!
找到 setEntityExpansionLimit 后,赶紧导入项目 - > 运行,完美执行:
最终结论:XmlOptions.setEntityExpansionLimit() 错误,是 jar 包版本引起的,3.0 版本以下的 xmlbeans 中根本没有该方法,需要将jar升级到 3.0+ 版本才可以
中途还有一个坑大家一定要注意!!!加入 xmlbeans 的jar以后,不要再加入 xbean.jar !!!不要再加入 xbean.jar !!!不要再加入 xbean.jar !!! 重要的事情搞三遍!!!