升级Spring Boot 3与Keycloak 20+后Apache HttpClient依赖冲突问题
Spring Boot 3 + Keycloak 20+ 启动失败:Apache HttpClient版本冲突问题
将应用升级至Spring Boot 3和Keycloak 20+版本后,启动失败,原因是Apache HttpClient相关依赖缺失。报错显示Keycloak Admin Client试图使用HttpClient 4,但Spring Boot 3已默认切换至HttpClient 5,引发SSLConnectionSocketFactory和HttpClient类的NoClassDefFoundError,最终导致Keycloak Admin Client初始化失败。
初始尝试
升级到Spring Boot 3和Keycloak 20+后,预期Keycloak Admin Client能正常工作,实际却出现SSLConnectionSocketFactory和HttpClient的NoClassDefFoundError。
添加Apache HttpClient 5(针对Spring Boot 3的预期修复)
尝试添加HttpClient 5依赖:
<dependency> <groupId>org.apache.httpcomponents.client5</groupId> <artifactId>httpclient5</artifactId> <version>5.2.1</version> </dependency>
原本以为能解决问题,但Keycloak Admin Client仍因缺少HttpClient 4的类而启动失败。
添加Apache HttpClient 4
接着尝试为Keycloak添加HttpClient 4依赖:
<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.14</version> </dependency>
预期既能解决Keycloak的报错,又能保留Spring Boot 3的HttpClient 5。结果Keycloak可以正常工作,但出现了HttpClient 4与5的版本冲突问题。
内容的提问来源于stack exchange,提问作者Marcel
相关产品推荐
相关产品推荐

