启动tomcat容器时,抛出严重异常
java.lang.NoSuchMethodError: org.apache.logging.log4j.ThreadContext.getThreadContextMap()
The method ThreadContext.getThreadContextMap() was added in 2.8. The only way I can imagine this error would happen is that an older version of the log4j-api module (say, log4j-api-2.7.jar) is also on the classpath, and it is loaded beforethe log4j-api-2.8.jar.
Can you verify the full classpath of the application? Alternatively, to verify which jar file the class is loaded from, you can do:
System.out.println("ThreadContext from: " + ThreadContext.class.getResource("/"
+ ThreadContext.class.getName().replace('.', '/') + ".class"));
.out.println("ThreadContext from: " + ThreadContext.class.getResource("/"
+ ThreadContext.class.getName().replace('.', '/') + ".class"));
主要原因是log4j-api-2.7.jar 与 log4j-api-2.8.jar
jar包存在冲突,在加载时优先加载了低版本2.7的jar包,导致了异常,只需将低版本2.7的jar删除问题就可以解决。