前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >POI升级5.2.2报错问题

POI升级5.2.2报错问题

作者头像
九转成圣
发布2024-04-10 16:59:30
1120
发布2024-04-10 16:59:30
举报
文章被收录于专栏:csdncsdn

POI升级5.2.2报错问题

标签:版本冲突

报错信息

代码语言:javascript
复制
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.logging.log4j.Logger.atDebug()Lorg/apache/logging/log4j/LogBuilder;
	at org.apache.poi.openxml4j.opc.PackageRelationshipCollection.parseRelationshipsPart(PackageRelationshipCollection.java:309)
	at org.apache.poi.openxml4j.opc.PackageRelationshipCollection.<init>(PackageRelationshipCollection.java:160)
	at org.apache.poi.openxml4j.opc.PackageRelationshipCollection.<init>(PackageRelationshipCollection.java:130)
	at org.apache.poi.openxml4j.opc.PackagePart.loadRelationships(PackagePart.java:565)
	at org.apache.poi.openxml4j.opc.OPCPackage.getParts(OPCPackage.java:745)
	at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:315)
	at org.apache.poi.ooxml.util.PackageHelper.open(PackageHelper.java:59)
	at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:304)
	at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:300)
	at com.lxw.mutils.ExcelUtil.excel2List(ExcelUtil.java:59)
	at com.lxw.mutils.ExcelUtil.excel2List(ExcelUtil.java:36)
	at cn.enn.smart.controller.WorkbenchMonitorGuidelineController.main(WorkbenchMonitorGuidelineController.java:39)

错误代码

org.apache.poi.openxml4j.opc.PackageRelationshipCollection#parseRelationshipsPart,也就是错误信息中所提到的at org.apache.poi.openxml4j.opc.PackageRelationshipCollection.parseRelationshipsPart(PackageRelationshipCollection.java:309)

代码语言:javascript
复制
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
private static final Logger LOG = LogManager.getLogger(PackageRelationshipCollection.class); 
public void parseRelationshipsPart(PackagePart relPart){
 	  ...
      LOG.atDebug().log("Parsing relationship: {}", relPart.getPartName());
      ...
 }

只需要有2.17.1的log4j-api就可以,然而springboot中引入的是2.12.1

网上给出的方案

代码语言:javascript
复制
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-to-slf4j</artifactId>
    <version>2.17.2</version>
    <exclusions>
        <exclusion>
            <artifactId>slf4j-api</artifactId>
            <groupId>org.slf4j</groupId>
        </exclusion>
        <exclusion>
            <artifactId>log4j-api</artifactId>
            <groupId>org.apache.logging.log4j</groupId>
        </exclusion>
    </exclusions>
</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -->
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.17.2</version>
</dependency>

通过log4j-to-slf4j:2.17.2引入的是log4j-api:2.12.1,所以排除掉,单独引入log4j-api:2.17.2

为啥拍排除org.slf4j也没做解释

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-04-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • POI升级5.2.2报错问题
    • 标签:版本冲突
    • 报错信息
    • 错误代码
    • 网上给出的方案
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档