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

Apache POI 5.2.2中XDDFDoughnutChartData.getHoleSize()抛出异常求助

Apache POI获取环形图表孔大小抛出SchemaTypeLoaderException排查思路

问题场景

使用Apache POI 5.2.2开发PowerPoint自定义环形图表时,从PPT模板现有环形图表中获取孔大小的代码如下:

else if (data instanceof XDDFDoughnutChartData){
        log.info("SUCCESS");

        XDDFDoughnutChartData pieData = (XDDFDoughnutChartData) data;

        Integer holeSize= pieData.getHoleSize();
}

运行时抛出异常:

org.apache.xmlbeans.SchemaTypeLoaderException: XML-BEANS compiled schema: Could not locate compiled schema resource org/apache/poi/schemas/ooxml/system/ooxml/stholesizepercenta3d2type.xsb (org.apache.poi.schemas.ooxml.system.ooxml.stholesizepercenta3d2type) - code 0
at org.apache.xmlbeans.impl.schema.XsbReader.<init>(XsbReader.java:63) ~[xmlbeans-5.0.3.jar:na]
at org.apache.xmlbeans.impl.schema.SchemaTypeSystemImpl.resolveHandle(SchemaTypeSystemImpl.java:933) ~[xmlbeans-5.0.3.jar:na]
at org.apache.xmlbeans.SchemaComponent$Ref.getComponent(SchemaComponent.java:113) ~[xmlbeans-5.0.3.jar:5.0.3]
at org.apache.xmlbeans.SchemaType$Ref.get(SchemaType.java:1072) ~[xmlbeans-5.0.3.jar:5.0.3]
at org.apache.xmlbeans.impl.schema.SchemaTypeImpl.computeFlatUnionModel(SchemaTypeImpl.java:1281) ~[xmlbeans-5.0.3.jar:na]
at org.apache.xmlbeans.impl.schema.SchemaTypeImpl.getUnionConstituentTypes(SchemaTypeImpl.java:1239) ~[xmlbeans-5.0.3.jar:na]
at org.apache.xmlbeans.impl.values.XmlUnionImpl.set_text(XmlUnionImpl.java:88) ~[xmlbeans-5.0.3.jar:na]

排查思路

  • 锁定XMLBeans与POI的匹配版本
    Apache POI 5.2.2官方适配的XMLBeans版本是5.0.2,异常中显示当前使用的是xmlbeans-5.0.3.jar,版本不匹配是核心诱因。需在依赖管理中强制指定XMLBeans为5.0.2版本:

    <dependency>
        <groupId>org.apache.xmlbeans</groupId>
        <artifactId>xmlbeans</artifactId>
        <version>5.0.2</version>
    </dependency>
    
  • 排查并解决依赖传递冲突
    使用依赖分析工具定位引入xmlbeans-5.0.3的来源:

    • Maven执行mvn dependency:tree,Gradle执行gradle dependencies
      找到冲突依赖后,通过排除规则移除其传递的XMLBeans引用:
    <dependency>
        <!-- 替换为实际冲突的依赖坐标 -->
        <groupId>xxx</groupId>
        <artifactId>xxx</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.apache.xmlbeans</groupId>
                <artifactId>xmlbeans</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    
  • 清理项目缓存并重新构建
    删除本地Maven/Gradle仓库中xmlbeans相关的包,执行mvn clean install(Maven)或gradle clean build(Gradle),确保依赖完全重新拉取,避免缓存的不匹配包干扰。

  • 确保POI组件版本统一
    检查所有POI相关依赖(如poi、poi-ooxml、poi-ooxml-schemas)是否均为5.2.2版本,禁止混合不同版本的POI组件,否则会引发Schema加载类的兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 10:05:09