升级Xmlbeans至5.0.1后POI4.4.1创建SXSSFWorkbook报错如何解决
问题解决办法
问题根源
你遇到的报错是POI版本与XmlBeans版本不兼容导致的。Apache POI 4.4.1版本官方默认适配的是XmlBeans 3.0.x系列,XmlBeans 5.x属于跨大版本升级,API做了不兼容改动:你遇到的XmlOptions.put(Ljava/lang/Object;)V报错就是该方法在XmlBeans 5.x中被修改/移除导致,进而触发了SharedStringsTable类初始化失败的连锁报错。
解决方案
方案1:保留现有POI版本(成本最低)
回退XmlBeans版本到官方适配的3.0.2版本即可,不需要调整jaxb-api或其他POI相关依赖,改完清理依赖缓存重新编译即可生效。
方案2:必须使用XmlBeans 5.0.1版本的处理方式
如果你有场景必须使用XmlBeans 5.0.1,需要同步升级整套POI依赖:
- 把
poi、poi-ooxml、poi-ooxml-schemas全部升级到5.2.x及以上版本,Apache POI从5.0.0版本开始才支持XmlBeans 5.x系列,注意所有POI相关依赖版本必须完全一致,避免出现新的类加载异常。 - 你当前使用的
jaxb-api-2.4.0-b180830.0359版本可以兼容POI 5.x系列,不需要额外调整;如果后续遇到JAXB相关初始化报错,补充同版本的jaxb-impl、jaxb-core依赖即可。
验证方式
依赖调整完成后,先清理本地Maven/Gradle的依赖缓存,重新编译项目后执行new SXSSFWorkbook(100)逻辑验证功能是否恢复正常。
内容的提问来源于stack exchange,提问作者Rambabu Pudi
相关产品推荐
相关产品推荐

