apache.poi XSSFWorkbook创建失败,空指针

在使用apache.poi导出excel文件时, debug到new XSSFWorkbook();就报空指针(用HSSFWorkbook没问题),怀疑是以来缺失或类加载导致,排查pom.xml也没问题,依赖都在且没有传递依赖。

然后分析可能xmlbeans有问题,XSSFWorkbook( .xlsx)底层依赖 XML 解析库 xmlbeans,而 HSSFWorkbook( .xls)只依赖基础 POI,不涉及 XML。当 JVM 尝试初始化 XSSFWorkbook 时,会静态加载一些类,如 org.apache.xmlbeans.XmlObject,如果这些类不存在或加载失败,某些内部初始化代码可能返回 null,后续调用就会抛出 NullPointerException,而不是 NoClassDefFoundError。所以检查xmlbeans是否真的存在:

mvn dependency:tree | findstr "xmlbeans"

发现有多个版本,然后在dependencyManagement中显式加入指定版本的xmlbeans,确保只有一个版本后,再次运行,无报错。

XML 复制代码
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>5.2.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>5.2.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.xmlbeans</groupId>
            <artifactId>xmlbeans</artifactId>
            <version>5.0.3</version>
        </dependency>
    </dependencies>
</dependencyManagement>
相关推荐
Geek_Vison11 小时前
APP集成了50多个小程序后,如何搭建一个小程序管理平台来管理这些小程序~
小程序·uni-app·apache·mpaas·小程序容器
解决问题no解决代码问题13 小时前
漏洞详解|CVE-2026-44825 Apache Solr 隐藏默认账号漏洞(附检测+修复全套方案)
apache·solr·lucene
BBWEYY终身尊贵会员1 天前
教培小机构小程序开发:从技术选型、系统架构到表结构与接口设计的完整实践
apache
前端 贾公子2 天前
小程序蓝牙打印探索与实践(下)
小程序·apache
DolphinScheduler社区2 天前
Apache DolphinScheduler 3.4.2 正式发布!新增 Amazon EMR Serverless 插件,增强监控与补数据能力
大数据·云原生·serverless·apache·海豚调度·版本发版
前端 贾公子2 天前
小程序蓝牙打印探索与实践(中)
apache
SeaTunnel3 天前
87 个 PR 迭代复盘|Apache SeaTunnel 5 月版本重点更新解读
大数据·数据库·开源·apache·seatunnel
DolphinScheduler社区3 天前
实战演示 | 基于 Apache DolphinScheduler 与 Apache SeaTunnel 实现 MySQL 到 Doris 离线定时增量同步
数据库·mysql·开源·apache·海豚调度·大数据工作流调度
chéng ௹3 天前
uniapp封装火山引擎 DataRangers 埋点 SDK
uni-app·apache·火山引擎
阿坤带你走近大数据3 天前
Apache Hop的详细介绍
apache