From 7ff337373ce0881b9d33948afb4f9a3049f9c080 Mon Sep 17 00:00:00 2001 From: chenxing Date: Mon, 31 Aug 2026 20:01:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20log4j2=20=E5=8F=8C?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E6=B7=B7=E5=8C=85=E5=AF=BC=E8=87=B4=E7=9A=84?= =?UTF-8?q?=E5=90=AF=E5=8A=A8=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 现象:java -jar cas.war 启动即抛 NoSuchMethodError: ThreadContext.getThreadContextMap, WAR 的 WEB-INF/lib 同时存在 log4j api/core/slf4j-impl 的 2.7 与 2.12.1 两套。 根因:spring-boot-dependencies 1.5.18 经内嵌 log4j-bom 管理 log4j 版本,默认 2.7; BOM import 方式下 pom 覆盖 属性不生效(属性在导入 BOM 自身上下文解析), maven 仍解析出 2.7 全套,与 overlay war 物理自带的 2.12.1 混包,类加载顺序决定成败。 修复:dependencyManagement 最前(先声明者优先)import log4j-bom 2.12.1, 全套 log4j 钉死 2.12.1,与 overlay war 内物理版本一致,war 内仅剩单套。 --- pom.xml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/pom.xml b/pom.xml index 0b292e3..86d66e0 100644 --- a/pom.xml +++ b/pom.xml @@ -36,6 +36,19 @@ + + + org.apache.logging.log4j + log4j-bom + 2.12.1 + pom + import + org.springframework.boot spring-boot-dependencies