项目打包部署完成,用jar包在部署环境运行,在使用到poi相关的服务时报错
java.lang.NoClassDefFoundError: org.apache.poi.POIXMLDocument
然后我查找了些解决办法,对处理方法做了梳理:
第一种情况解决办法:
最大的可能是引入的jar包过高或者过低
poi相关的poi有三个:poi、poi-ooxml、poi-ooxml–schemas
当然如果你使用的一直是高版本,就不需要强行下降版本,可能问题不是第一种,因为3.15版本也是隐藏些问题的。
第二种情况解决办法
<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>
第三种情况解决办法
第四种情况解决办法
找到出现错误的类文件,我出错的类文件是FileStencilHandleUtils
然后找到这个类模块里面的pom,添加上依赖,然后往上找pom,找到公共pom和主pom文件,将里面的依赖去除。
这样就可以解决掉问题。当然如果还有其它模块需要用,可保留主pom,需要的模块声明所需依赖。
第五种情况解决办法
下载或者找到对应的jar包
将jar包解压,找到里面的文件XWPFStylesDocument.java文件
位置是在org.apache.poi.xwpf.converter.core-1.0.6-sourcesorgapachepoixwpfconvertercorestyles
修改完成后,将整个模块放入代码中,或者重新打成jar包,依赖引入。
第五种解决方法来自于博主:「大魔王的日常Log」的原创文章
原文链接:https://blog.csdn.net/TaoShao521/article/details/126170434
————————————————
补充知识点:
NoClassDefFoundError问题 和 ClassNotFoundException问题不一样,前者一般发生在编译时能找到对应的类,但运行时找不到,后者发生在编译时就找不到对应的类。
原文地址:https://blog.csdn.net/weixin_45937536/article/details/128904930
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_22508.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!