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

如何将org.apache.poi的poi-ooxml从4.1.1升级到5.0.0并解决报错

报错原因

POI从5.0.0版本开始,依赖的Apache XMLbeans组件版本从3.x系列升级到了4.x系列,而XMLbeans 4.x版本直接移除了org.apache.xmlbeans.xml.stream包下的所有旧API,包括报错提示的XMLInputStream类,所以会触发类找不到的异常,对应报错信息翻译为:java: 无法访问org.apache.xmlbeans.xml.stream.XMLInputStream,找不到org.apache.xmlbeans.xml.stream.XMLInputStream的类文件。

解决方案

根据你的实际使用场景选择对应方案即可:

  • 场景1:你的业务代码没有直接引用org.apache.xmlbeans.xml.stream.XMLInputStream
    这是最常见的情况,一般是项目中其他依赖引入了低版本的XMLbeans,产生了版本冲突。
    1. 执行依赖排查命令定位低版本XMLbeans的来源:
      • Maven项目执行:mvn dependency:tree | grep xmlbeans
      • Gradle项目执行:gradle dependencies | grep xmlbeans
    2. 找到低版本XMLbeans的引入依赖后,在对应依赖的声明中加入排除规则,将所有XMLbeans的版本统一为POI 5.0.0配套的4.0.0及以上版本即可。
  • 场景2:你的业务代码直接引用了XMLInputStream类
    旧的XMLbeans流式API已经被官方废弃移除,你需要将代码中对org.apache.xmlbeans.xml.stream.XMLInputStream的引用,替换为JDK自带的javax.xml.stream.XMLInputStream,或者适配POI 5.x提供的新XML处理API。

注意:不推荐临时手动引入低版本XMLbeans 3.x的兼容方案,虽然可以临时解决该报错,但后续大概率会出现其他类不兼容的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 12:18:03