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

Spring Boot 2.7迁移至3.1时遭遇java.lang.NoClassDefFoundError问题求助

Spring Boot 2.7迁移至3.1:解决java.lang.NoClassDefFoundError: javax/ws/rs/core/Configuration

这个错误的核心原因是Spring Boot 3.x全面切换到Jakarta EE 9+规范,原Java EE的javax.*命名空间API已被替换为jakarta.*,而javax.ws.rs.core.Configuration属于JAX-RS旧规范类,在Jakarta EE中对应的类是jakarta.ws.rs.core.Configuration。

解决步骤:

  • 替换JAX-RS依赖:将项目中依赖的javax.ws.rs:javax.ws.rs-api替换为Jakarta版本的jakarta.ws.rs:jakarta.ws.rs-api(建议版本3.0.1及以上,适配Spring Boot 3.1)。若使用Spring Boot Starter,确保spring-boot-starter-jersey等starter已升级到3.x版本,它会自动引入正确的Jakarta依赖。
  • 全局替换代码导入:搜索项目中所有import javax.ws.rs.*语句,替换为import jakarta.ws.rs.*,包括Configuration类及相关注解(如@Path、@GET)、工具类的导入。
  • 清理依赖冲突:通过依赖分析工具排查依赖树,找出仍引入javax.ws.rs-api的第三方依赖并排除。
    Maven示例:
    <dependency>
        <groupId>第三方依赖组ID</groupId>
        <artifactId>第三方依赖包ID</artifactId>
        <exclusions>
            <exclusion>
                <groupId>javax.ws.rs</groupId>
                <artifactId>javax.ws.rs-api</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    
    Gradle示例:
    implementation('第三方依赖组ID:第三方依赖包ID') {
        exclude group: 'javax.ws.rs', module: 'javax.ws.rs-api'
    }
    
  • 升级第三方库:若使用的第三方SDK或组件仍依赖旧的JAX-RS规范,优先升级到支持Jakarta EE的版本。

内容的提问来源于stack exchange,提问作者Vadiraj Hebbar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 23:30:00