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

使用xmlbeans 5.0.3访问Excel遇NoSuchMethodError问题求助

解决xmlbeans 5.0.3与POI兼容导致的NoSuchMethodError错误
  • 问题根源:xmlbeans 5.x版本对API做了大幅调整,XmlOptions.setUseDefaultNamespace(boolean)方法已被移除或变更,但POI(尤其是5.x系列)依赖的是xmlbeans 3.x版本,二者API不兼容,强行替换会触发找不到方法的错误。

  • 具体解决方案:

    1. 放弃使用xmlbeans 5.0.3,改用POI官方兼容的xmlbeans版本
      POI 5.x系列对应兼容的xmlbeans版本为3.x(比如POI 5.2.5对应xmlbeans 3.2.1,POI 5.2.3对应xmlbeans 3.1.0),不需要手动引入高版本xmlbeans,直接依赖POI自带的版本即可。

    2. 调整pom.xml配置
      先移除你手动添加的xmlbeans 5.0.3依赖,然后确保POI相关依赖使用统一的兼容版本,示例配置如下:

      <dependencies>
          <!-- POI核心依赖 -->
          <dependency>
              <groupId>org.apache.poi</groupId>
              <artifactId>poi</artifactId>
              <version>5.2.5</version>
          </dependency>
          <!-- POI OOXML 处理Excel 2007+格式 -->
          <dependency>
              <groupId>org.apache.poi</groupId>
              <artifactId>poi-ooxml</artifactId>
              <version>5.2.5</version>
          </dependency>
      </dependencies>
      

      如果项目中其他依赖间接引入了高版本xmlbeans,通过dependencyManagement强制锁定兼容版本:

      <dependencyManagement>
          <dependencies>
              <dependency>
                  <groupId>org.apache.xmlbeans</groupId>
                  <artifactId>xmlbeans</artifactId>
                  <version>3.2.1</version>
              </dependency>
          </dependencies>
      </dependencyManagement>
      
    3. 验证依赖一致性
      执行mvn dependency:tree命令,检查输出中xmlbeans的版本是否为POI兼容的3.x版本,确保没有高版本xmlbeans被意外引入。

    4. 代码无需修改
      你使用WorkbookFactory.create(fileInputStream)加载Excel的代码本身没有问题,依赖版本兼容后即可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 04:40:24