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>
相关推荐
zhojiew1 小时前
在AWS上完成Apache Doris存算一体/存算分离和湖仓数据库部署的实践
数据库·apache·aws
想你依然心痛20 小时前
大数据时代时序数据库选型指南:Apache IoTDB 的实战进阶与避坑法则
大数据·apache·时序数据库
李白你好1 天前
ActiveMQ-EXPtools支持检测和利用Apache ActiveMQ漏洞
apache·activemq
俺爱吃萝卜2 天前
开源贡献指南:如何给Apache或Linux内核提PR?
linux·开源·apache
Ulyanov4 天前
Apache Kafka在雷达仿真数据流处理中的应用
分布式·python·kafka·apache·雷达电子战
anzhxu4 天前
防火墙安全策略(基本配置)
服务器·php·apache
小郑加油4 天前
python学习Day6-7天:条件判断与基本综合应用
java·服务器·apache
架构源启6 天前
深度解析:Spring Boot + Apache OpenNLP 构建企业级 NLU 系统
spring boot·后端·apache
SeaTunnel6 天前
深度解析 Apache SeaTunnel 核心引擎三大技术创新:高可靠异步持久化与 CDC 架构优化实战
大数据·数据库·架构·apache·seatunnel
DolphinScheduler社区6 天前
第 8 篇|Apache DolphinScheduler 与 Flink Spark 数据引擎的边界、协同与最佳实践
大数据·flink·spark·开源·apache·海豚调度·大数据工作流调度