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

wqlqzqxt  于 2023-11-18  发布在  Apache
关注(0)|答案(1)|浏览(255)

当我试图读取Excel文件时,此错误显示:

  1. Exception in thread "main" java.lang.NoSuchMethodError: org.apache.logging.log4j.Logger.atDebug()Lorg/apache/logging/log4j/LogBuilder;

字符串
指向这条线:

  1. try (FileInputStream inputStream = new FileInputStream(configFile.getPath());
  2. XSSFWorkbook workbook = new XSSFWorkbook(inputStream)) {


我试图从apache poi中排除log4j依赖,但现在它可以工作了:

  1. <dependency>
  2. <groupId>org.apache.poi</groupId>
  3. <artifactId>poi</artifactId>
  4. <version>5.2.2</version>
  5. <exclusions>
  6. <exclusion>
  7. <groupId>org.apache.logging.log4j</groupId>
  8. <artifactId>log4j-core</artifactId>
  9. </exclusion>
  10. </exclusions>
  11. </dependency>
  12. <dependency>
  13. <groupId>org.apache.poi</groupId>
  14. <artifactId>poi-ooxml</artifactId>
  15. <version>5.2.2</version>
  16. <exclusions>
  17. <exclusion>
  18. <groupId>org.apache.logging.log4j</groupId>
  19. <artifactId>log4j-core</artifactId>
  20. </exclusion>
  21. </exclusions>
  22. </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的更多信息

相关问题