You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

POI升级至5.0.0搭配xlsx-streamer2.2.0触发NoSuchMethodError如何解决

问题根因

你遇到的报错和xmlbeans版本无关,核心是依赖版本不兼容:
你当前使用的xlsx-streamer 2.2.0最高仅支持适配POI 4.x系列版本,而POI 5.0.0对内部API做了不兼容升级,org.apache.poi.xssf.model.SharedStringsTable的getEntryAt(int)方法签名发生变更,旧版本返回的CTRst相关接口被调整,xlsx-streamer 2.2.0底层仍在调用POI 4.x的旧方法签名,所以触发如下错误:

java.lang.NoSuchMethodError: org.apache.poi.xssf.model.SharedStringsTable.getEntryAt(I)Lorg/openxmlformats/schemas/spreadsheetml/x2006/main/CTRst;

解决方案

  • 方案1:升级xlsx-streamer版本
    直接将xlsx-streamer的版本升级到2.3.0及以上即可,该版本已经完成POI 5.x系列的API适配,无需调整现有POI 5.0.0、xmlbeans 5.0.1的版本。
  • 方案2:回退POI到4.x系列
    若业务侧无法升级xlsx-streamer版本,将POI版本回退到4.1.2及以下的4.x稳定版本,xmlbeans同步保持3.x版本即可恢复正常。
  • 方案3:自行修改适配(不推荐)
    若必须同时使用POI 5.0.0和xlsx-streamer 2.2.0,可以fork xlsx-streamer 2.2.0的源码,修改com.monitorjbl.xlsx.impl.StreamingSheet中调用SharedStringsTable.getEntryAt的逻辑,适配POI 5.x的新API后重新打包引入项目。

内容的提问来源于stack exchange,提问作者Rambabu Pudi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 17:09:03