Keycloak server-spi-private依赖Javax而非Jakarta的使用问题求助
Keycloak Server SPI Private 依赖 Javax 而非 Jakarta 问题解答
先给你捋清楚背景:Keycloak 从17版本开始就完成了Jakarta EE的迁移,但keycloak-server-spi-private这个模块的适配节奏和admin-client不一样,20.0.2版本确实还停留在Javax依赖上。
再说说包结构的变化:
- Keycloak迁移到Jakarta后,所有原Javax相关的包路径都从
javax.*改成了jakarta.*,比如javax.ws.rs变成jakarta.ws.rs,javax.persistence变成jakarta.persistence这类。 - 但
keycloak-server-spi-private的Jakarta版本不是单独发布的,而是整合在更高版本的Keycloak核心依赖里。从21版本开始,整个server模块体系(包括SPI相关)都彻底切换到了Jakarta依赖。
给你两个可行的解决方向:
- 直接把Keycloak版本升级到21或更高,这时候
keycloak-server-spi-private会自动用Jakarta依赖,不用单独找适配包。 - 如果暂时没法升级,可以手动排除这个jar里的Javax依赖,再引入对应的Jakarta替代依赖(比如
jakarta.servlet-api、jakarta.ws.rs-api这些),但这种方式可能会有兼容性问题,得自己测试验证。
内容的提问来源于stack exchange,提问作者pemko
相关产品推荐
相关产品推荐

