【问题标题】:java.lang.NoSuchMethodError: org.apache.logging.log4j.ThreadContext.getThreadContextMap()java.lang.NoSuchMethodError: org.apache.logging.log4j.ThreadContext.getThreadContextMap()
【发布时间】:2021-10-29 22:07:58
【问题描述】:

我有一个带有 log4j 2.9.1 的 spring mvc 应用程序。它曾经工作正常,但突然之间,我明白了

Caused by: java.lang.NoSuchMethodError: org.apache.logging.log4j.ThreadContext.getThreadContextMap()Lorg/apache/logging/log4j/spi/ThreadContextMap;
    at org.apache.logging.log4j.ThreadContextAccess.getThreadContextMap(ThreadContextAccess.java:45)

每当创建记录器时似乎都会发生这种情况

private static final Logger log = LogManager.getLogger(WebMVCConfig.class);

下面一行:

System.out.println("ThreadContext from: " +  ThreadContext.class.getResource("/"
                 + ThreadContext.class.getName().replace('.', '/') + ".class")); 

输出

WEB-INF/lib/log4j-api-2.9.1.jar!/org/apache/logging/log4j/ThreadContext.class

在我工作区的其他应用程序之一中使用 ThreadContext 后,我​​开始收到此错误,但我在此 Web 应用程序中没有任何行引用此错误。

我已经查看了对这个问题的所有现有回复,如果构建路径上存在版本 2.7 的 log4j-api jar,似乎会引发此错误,但我似乎没有那个 jar依赖关系。

【问题讨论】:

标签: java log4j2 threadcontext


【解决方案1】:

原来是 Eclipse 工作区出了点问题。我创建了一个新的工作区,在那里导入了我的项目,现在可以正常工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-04
    • 1970-01-01
    • 2017-10-11
    • 2014-11-03
    • 2013-12-04
    • 2016-04-16
    • 2013-12-16
    相关资源
    最近更新 更多