解决 java.lang.NoClassDefFoundError: org/apache/poi/POIXMLTypeLoader 报错

在使用POI导出Excel表格的时候,本地运行导出没问题,但是发布到服务器后提示 “java.lang.NoClassDefFoundError: org/apache/poi/POIXMLTypeLoader”
在这里插入图片描述

下面是pom.xml中的配置

<dependency>
     <groupId>org.apache.poi</groupId>
     <artifactId>poi</artifactId>
     <version>4.1.2</version>
 </dependency>

 <dependency>
     <groupId>org.apache.poi</groupId>
     <artifactId>poi-ooxml</artifactId>
     <version>4.1.2</version>
 </dependency>

一开始以为缺少jar包导致的,后来排查发现不是这个原因,是因为ooxml-schemas版本过低。对于poi 4.1.0和4.1.2来说,应该使用ooxml-schemas-1.4.jar,而我的版本为1.3,所以将poi版本号改为4.1.1后完美解决。

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
引用\[1\]:NoClassDefFoundError问题和ClassNotFoundException问题不一样,前者一般发生在编译时能找到对应的类,但运行时找不到,后者发生在编译时就找不到对应的类。引用\[2\]:在项目打包部署完成后,使用jar包在部署环境运行时,出现了java.lang.NoClassDefFoundError: org.apache.poi.POIXMLDocument的错误。根据我的了解,这个错误通常是由于缺少依赖包或者依赖冲突导致的。解决这个问题的方法有几种:1. 确保在pom文件中引入了正确的依赖包,特别是org.apache.poi.poi-ooxmlorg.apache.poi.poi这两个包的版本应该与你使用的POI版本一致。2. 检查是否存在依赖冲突,可以使用mvn dependency:tree命令来查看项目的依赖树,确保没有重复引入相同的依赖包。3. 如果使用了模块化开发,需要确保在模块的pom文件中声明了所需的依赖。4. 如果以上方法都没有解决问题,可以尝试修改POIXMLDocumentPart文件中的代码,根据具体情况进行调整。引用\[3\]:根据我的经验,你可以在pom文件中添加以下maven依赖来解决这个问题: <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.1.0</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.0</version> </dependency> 这样应该能够解决java.lang.NoClassDefFoundError: org/apache/poi/POIXMLTypeLoader的问题。 #### 引用[.reference_title] - *1* *2* *3* [java.lang.NoClassDefFoundError: org.apache.poi.POIXMLDocument问题排查解决](https://blog.csdn.net/weixin_45937536/article/details/128904930)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值