内容纲要
问题
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.logging.log4j.Logger.atDebug()Lorg/apache/logging/log4j/LogBuilder;
原因
poi关联的log4j包,版本是2.2.12,其中因为版本低,没有对应方法导致的。
解决方案
pom.xml文件里直接引入log4j新版本,poi内排出引用的log4j旧版本。
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.17.1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.2.2</version>
<exclusions>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
如果项目中,其他包也有引入log4j版本的问题,做对应排除即可。
操作maven命令“mvn dependency:tree”查看项目内所有jar关联情况,针对性处理。