当我试图读取Excel文件时,此错误显示:
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.logging.log4j.Logger.atDebug()Lorg/apache/logging/log4j/LogBuilder;
字符串
指向这条线:
try (FileInputStream inputStream = new FileInputStream(configFile.getPath());
XSSFWorkbook workbook = new XSSFWorkbook(inputStream)) {
型
我试图从apache poi中排除log4j依赖,但现在它可以工作了:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.2.2</version>
<exclusions>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.2</version>
<exclusions>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</exclusion>
</exclusions>
</dependency>
型
看起来apache poi 5.2.2版使用或调用了log4j。我是否也需要将其包含到依赖项中?或者是否有适当的方法来排除log4j?
1条答案
按热度按时间wpcxdonn1#
org.apache.logging.log4j.Logger
是org.apache.logging.log4j:log4j-api
的一部分。如果您排除org.apache.logging.log4j:log4j-core
,它也将排除org.apache.logging.log4j:log4j-api
您需要在类路径中包含
log4j-api
。如果你正在使用slf 4j,你可以找到log4j-over-slf 4j
关于Apache POI's Logging Framework的更多信息