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

Spring Boot 3.0升级遇javax/enterprise/context/spi/Contextual缺失错误求助

解决Spring Boot 3升级中javax/enterprise/context/spi/Contextual缺失问题

问题根源

你使用的DeltaSpike 1.9.6是基于旧的javax EE API开发的,而Spring Boot 3要求完全迁移到Jakarta EE规范,这个版本的DeltaSpike仍在引用javax包,导致测试时找不到javax.enterprise.context.spi.Contextual类。

修复步骤

1. 升级DeltaSpike到Jakarta兼容版本

DeltaSpike从2.0.x版本开始支持Jakarta EE 10,直接把所有DeltaSpike依赖替换为2.0+的稳定版(比如2.1.1),替换后即可使用Jakarta版本的API。

2. 清理重复依赖

你的gradle配置里重复声明了deltaspike-test-control-module-api,删掉重复项,避免依赖冲突。

3. 可选:移除JUnit Vintage(如果不需要兼容JUnit 4)

Spring Boot 3默认适配JUnit 5,若没有遗留的JUnit 4测试,可以移除junit-vintage-engine,减少不必要的依赖。

修改后的gradle.build依赖示例

dependencies {
    implementation group: 'jakarta.platform', name: 'jakarta.jakartaee-api', version: '10.0.0'
    implementation group: 'jakarta.enterprise', name: 'jakarta.enterprise.cdi-api', version: '4.0.1'

    testImplementation "org.junit.jupiter:junit-jupiter-api:5.10.0"
    testImplementation "org.junit.jupiter:junit-jupiter-params:5.10.0"
    testImplementation "org.junit.jupiter:junit-jupiter-engine:5.10.0"
    // 若无需兼容JUnit 4,可删除下面这行
    // testImplementation "org.junit.vintage:junit-vintage-engine:5.10.0"

    // 替换为Jakarta兼容的DeltaSpike版本
    testImplementation 'org.apache.deltaspike.core:deltaspike-core-api:2.1.1'
    testImplementation 'org.apache.deltaspike.core:deltaspike-core-impl:2.1.1'
    testImplementation 'org.apache.deltaspike.modules:deltaspike-test-control-module-api:2.1.1'
    testImplementation 'org.apache.deltaspike.modules:deltaspike-test-control-module-impl:2.1.1'
    testImplementation 'org.apache.deltaspike.cdictrl:deltaspike-cdictrl-weld:2.1.1'
    testImplementation group: 'org.jboss.weld.se', name: 'weld-se-core', version: '5.1.1.SP2'
}

额外检查

  • 执行gradle dependencies命令,查看依赖树中是否还有javax相关包,如有,用exclude规则排除,示例:
    implementation('some-dependency') {
        exclude group: 'javax.enterprise', module: 'cdi-api'
    }
    
  • 确认项目代码中所有javax.xxx的导入都替换为jakarta.xxx,比如javax.enterprise.context替换为jakarta.enterprise.context。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 01:31:00