调用conf.register()时出现Cannot access jakarta.ws.rs.core.Configurable错误求助
问题分析与解决
错误原因
你遇到的Cannot access jakarta.ws.rs.core.Configurable错误,核心是Jersey版本不兼容:
- 你使用的
jersey-client和jersey-media-multipart是3.0.3版本,属于Jersey的Jakarta EE分支,依赖jakarta.ws.rs包下的API - 但测试依赖的
jersey-test-framework-core是2.34版本,属于Jersey的Java EE分支,依赖javax.ws.rs包下的API
两者包名完全不同,导致编译时无法找到对应的Configurable接口。
解决方案
1. 统一Jersey版本
将测试框架的版本改为和客户端、multipart组件一致的3.0.3,修改依赖配置:
testImplementation 'org.glassfish.jersey.test-framework:jersey-test-framework-core:3.0.3'
2. 排查冲突依赖
如果修改后仍有问题,通过依赖分析命令(Gradle用./gradlew dependencies,Maven用mvn dependency:tree)检查是否有其他依赖引入了旧版本的Jersey或javax.ws.rs包,必要时排除冲突依赖。
3. 验证配置
同步依赖后,测试类的configureClient方法即可正常调用conf.register(),此时所有Jersey组件都基于统一的Jakarta EE API。
内容的提问来源于stack exchange,提问作者Micu Bogdan
相关产品推荐
相关产品推荐

