You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Eclipse中Maven项目配置Struts和Hibernate后遇NoSuchMethodError错误求助

解决Maven项目中log4j的NoSuchMethodError问题

这个问题我之前帮好几个开发者解决过,本质就是log4j的依赖版本冲突搞的鬼——你的项目里同时混了不同版本的log4j相关jar包,比如旧版本的log4j-core和新版本的log4j-api(反过来也有可能),而getThreadContextMap()这个方法是在较新的log4j 2.x版本里才新增的,旧版本根本没有这个方法,代码调用时自然就抛出错误了。

咱们一步步来解决:

  • 第一步:揪出冲突的依赖包
    在Eclipse里打开Maven视图,找到你的项目,右键选Run As -> Maven build...,在Goals框里输入dependency:tree,点击Run。这会输出项目所有依赖的层级树,你重点找包含log4j-core或log4j-api的条目,看看是不是有不同版本重复出现。

  • 第二步:排除掉冲突的低版本依赖
    找到引入旧版本log4j的那个依赖(大概率是Struts或者Hibernate自带的),在你的pom.xml里给这个依赖加上<exclusions>标签,把旧的log4j包排除掉。比如如果是Struts带进来的旧log4j:

    <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts-core</artifactId>
        <version>你的Struts版本号</version>
        <exclusions>
            <exclusion>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-core</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-api</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    
  • 第三步:统一指定log4j版本
    在pom.xml的<dependencyManagement>区块里,明确指定log4j-core和log4j-api的统一稳定版本,确保整个项目都用同一个版本:

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-core</artifactId>
                <version>2.17.1</version> <!-- 可以选最新的稳定版,比如2.20.0也行 -->
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-api</artifactId>
                <version>2.17.1</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
    
  • 第四步:清理重建项目
    右键项目选Maven -> Clean,等清理完再选Maven -> Install,让Maven重新下载并替换正确的依赖包。

最后提个醒:别同时引入log4j 1.x和log4j 2.x的包,这俩API差异巨大,绝对会出问题;另外如果还有其他第三方依赖,也要检查它们有没有带进来不同版本的log4j,逐一排除就行。

内容的提问来源于stack exchange,提问作者Saad Ouazani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:34:18