Apache poi 找不到 log4j org.apache.logging.log4j.Logger.atDebug() 的方法

问题描述 投票:0回答:1

当我尝试读取 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?

java apache apache-poi log4j
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.