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

升级Spring Boot至2.2.7后遇NoClassDefFoundError问题求助

解决Spring Boot 2.2.7升级后的NoClassDefFoundError问题

问题根源

org.springframework.data.repository.query.spi.EvaluationContextExtensionSupport类在Spring Data Hopper版本后被移除,替换为EvaluationContextExtension接口。你遇到的错误是因为某个传递依赖仍在引用旧版Spring Data模块,导致找不到已废弃移除的类。

具体解决步骤

  • 排查传递依赖冲突
    执行Maven命令过滤Spring Data相关依赖,定位版本不一致的模块:

    mvn dependency:tree -Dverbose -Dincludes=org.springframework.data
    

    查看输出结果,找出所有版本低于Hopper-SR12的Spring Data模块,记录它们的引入来源。

  • 统一锁定Spring Data版本
    Spring Boot 2.2.7对应的Spring Data版本为Hopper-SR12,在pom.xml的<dependencyManagement>中导入Spring Data BOM,强制所有Spring Data模块使用统一版本:

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.data</groupId>
                <artifactId>spring-data-bom</artifactId>
                <version>Hopper-SR12</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
        </dependencies>
    </dependencyManagement>
    
  • 排除冲突的传递依赖
    如果排查到第三方依赖强制引入了旧版Spring Data模块,在该依赖中排除冲突的模块。例如:

    <dependency>
        <groupId>第三方依赖groupId</groupId>
        <artifactId>第三方依赖artifactId</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.data</groupId>
                <artifactId>spring-data-commons</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    
  • 清理本地依赖缓存
    执行命令强制更新依赖并重新构建:

    mvn clean install -U
    
  • 检查自定义扩展类
    虽然你未直接使用该类,但排查项目中是否存在继承EvaluationContextExtensionSupport的自定义类。如果有,将其改为实现org.springframework.data.repository.query.spi.EvaluationContextExtension接口。

内容的提问来源于stack exchange,提问作者Kaushik Mahadevan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 01:39:50