我有一个使用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。
发布于 2021-08-31 11:31:13
事实证明,这是eclipse工作区的一些问题。我创建了一个新的工作区,在那里导入了我的项目,现在它工作得很好。
https://stackoverflow.com/questions/68996249
复制相似问题