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>
相关推荐
SeaTunnel16 小时前
Apache SeaTunnel 2025 案例精选重磅发布!
大数据·开源·apache·seatunnel·案例
麦兜*20 小时前
Spring Boot 整合 Apache Doris:实现海量数据实时OLAP分析实战
大数据·spring boot·后端·spring·apache
云边有个稻草人21 小时前
大数据时代下的时序数据库选型指南:为何Apache IoTDB成为最优解
大数据·apache·时序数据库·apache iotdb
JosieBook2 天前
【数据库】时序数据智能基座:Apache IoTDB 选型与深度实践指南
数据库·apache·iotdb
微学AI2 天前
时序数据库选型操作:Apache IoTDB 的深度实战应用
apache·时序数据库·iotdb
それども2 天前
Apache POI XSSFWorkbook 写入Excel文件的潜在风险
apache·excel
Benny的老巢2 天前
Mac上用XAMPP搭建局域网可访问的开发环境,让局域网内其他设备通过域名访问
nginx·macos·apache·xampp·php开发环境
Maggie_ssss_supp3 天前
Linux-Web服务(Apache)
linux·运维·apache
予枫的编程笔记3 天前
深度解析Apache RocketMQ:从核心原理到实战应用
java·apache·rocketmq
hopsky4 天前
2025 年 Apache DolphinScheduler 案例精选
apache