使用ContainerFactory遇NoClassDefFoundError:jakarta.json-api类存在性疑问
关于jakarta.json-api 2.0.1中是否存在javax/json/JsonValue的问题解答
- 结论明确:jakarta.json-api 2.0.1版本里不存在
javax/json/JsonValue类 - 核心原因:从Jakarta EE 9开始,原Java EE体系的API包名全面从
javax.*迁移到jakarta.*。jakarta.json-api 2.0.x属于Jakarta EE 9及以上版本,所有JSON相关类都已迁移至jakarta.json包下,原javax.json.JsonValue对应的类现在是jakarta.json.JsonValue。 - 为什么1.1.6版本能正常运行:jakarta.json-api 1.1.6是兼容Java EE 8的版本,仍保留
javax.json的包结构,因此能匹配代码中对javax.json.JsonValue的引用。 - 解决方案参考:
- 若坚持使用2.0.1版本,需将代码中所有
import javax.json.*替换为import jakarta.json.*,确保包名匹配。 - 若无法修改现有代码(比如依赖的ContainerFactory仅支持
javax.json),则需继续使用1.1.6版本,或寻找适配Jakarta EE 9+的ContainerFactory新版本。
- 若坚持使用2.0.1版本,需将代码中所有
内容的提问来源于stack exchange,提问作者hld942614
相关产品推荐
相关产品推荐

