当前位置: 首页 > 知识库问答 >
问题:

我得到了“NoClassDefFoundError:org/apache/logging/log4j/util/ReflectionUtil”

裴泰平
2023-03-14

我的build.gradle文件中有以下依赖项。

compile 'org.slf4j:slf4j-api:1.7.25'
compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.11.1'
compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.11.1'

在运行我的单元测试时,将显示以下日志。

exclude patterns:SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in 
[jar:file:....gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-slf4j-impl/2.7/382b070836b8940a02d28c936974db95e9bfc3a4/log4j-slf4j-impl-2.7.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/Users/z002qz1/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-slf4j-impl/2.9.1/a97a849b18b3798c4af1a2ca5b10c66cef17e3a/log4j-slf4j-impl-2.9.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
java.lang.NoClassDefFoundError: org/apache/logging/log4j/util/ReflectionUtil
at org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:42)
at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:46)
at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:29)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:358)

我使用的是Spring启动2.0.4。释放。我希望这只是某种版本不匹配的问题。任何见解都受到赞赏。

共有2个答案

杜辰龙
2023-03-14

在spring boot中配置log4j2的正确方法如下:

dependencies {
    compile 'org.springframework.boot:spring-boot-starter-web'
    compile 'org.springframework.boot:spring-boot-starter-log4j2'
}

configurations {
    all {
        exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging'
    }
}

文档中对此进行了解释。

邹慈
2023-03-14

错误:java.lang.NoClassDefFoundError: org/apache/log/log4j/util/反射Util

是因为log4j2从版本2.9开始。0已从api jar(log4j-api-2.x.x.jar)中删除该类。

最后一个版本是2.8。2.

在类路径中可能有混合版本。

 类似资料:
  • https://logging.apache.org/log4j/2.x/maven-artifacts.html 我将它粘贴到我的文件中,并编写了运行代码的示例代码。 除此之外,我还添加了manifest以便从控制台运行代码。 最重要的是,有一点需要指出,虽然它不能与java-jar<.jar>一起工作,但出于某种原因,它仍然可以在Intellij IDEA中工作。有人能给我解释一下为什么吗?

  • 问题内容: 我想在我正在使用的Elasticsearch中执行单元测试, 我正在使用 并参考以下链接以寻求帮助 https://www.elastic.co/guide/en/elasticsearch/reference/1.6/using- elasticsearch-test-classes .html https://github.com/elastic/elasticsearch/blo

  • 我想在Elasticsearch中执行单元测试,因为我正在使用

  • 这是Spring应用程序中非常易于使用的Log4J功能。 下面的示例将指导您完成Log4J和Spring之间简单集成的简单步骤。 我们假设您的计算机上已经安装了log4J 。 如果你没有它,那么你可以从https://logging.apache.org/下载它,只需在任何文件夹中提取压缩文件。 我们将在项目中仅使用log4j-xyzjar 。 接下来,让我们使用一个可用的Eclipse IDE,

  • 问题内容: 我总是遇到以下错误。有人可以帮我吗? 当我编译以下代码时。我已经在网上搜索了,但没有找到解决方案。添加saveToCassandra时出现错误。 我的pom是以下内容。 问题答案: org.apache.spark.Logging在Spark版本1.5.2或更低版本中可用。它不在2.0.0中。请更改版本如下

  • 我试图用火花流在推特上找到流行的标签。 twitter4j-stream-4.0.4.jar Spark-Streaming-Twitter2.10-1.0.0.jar 在代码上,齐柏林飞船工作得很好 任何帮助都将不胜感激! 谢谢。