Apache poi cannot find method of log4j org.apache.logging.log4j.Logger.atclock()

wqlqzqxt  于 6个月前  发布在  Apache
关注(0)|答案(1)|浏览(98)

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

wpcxdonn

wpcxdonn1#

org.apache.logging.log4j.Loggerorg.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的更多信息

相关问题