使用 Keycloak 4.3.0.Final 和 dropwizard 1.3.1
Using Keycloak 4.3.0.Final with dropwizard 1.3.1
我在将 keycloak 集成到 dropwizard 时遇到问题。 Keycloak 需要 RestEasy 客户端,所以我不得不使用依赖项:
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-client</artifactId>
<version>3.0.26.Final</version>
</dependency>
然后我创建我的 httpClient :
RxClient<RxCompletionStageInvoker> httpClient = new JerseyClientBuilder(environment)
.using(configuration.getJerseyClientConfiguration())
.buildRx(getName(), RxCompletionStageInvoker.class);
然后我尝试使用客户端,例如:
httpClient
.target(path)
.request()
.get();
我收到错误:
java.lang.ClassCastException: org.jboss.resteasy.client.jaxrs.internal.ClientRequestContextImpl cannot be cast to org.glassfish.jersey.client.ClientRequest
当我删除依赖项时,我得到了 JercyClient 并且找到了所有 httpRequests 但 Keycloak 构建器失败,当我使用 RestEasy 依赖项时,keyCloak 成功但所有其他 http 请求失败
以前有人遇到过这个问题吗?有什么方法可以控制何时获得 resteasy 客户端以及何时获得 jersey 客户端?
解决方案是使用 RestEasy 依赖但不使用 JersyClientBuilder:
Client httpClient = new ResteasyClientBuilder().build();
我在将 keycloak 集成到 dropwizard 时遇到问题。 Keycloak 需要 RestEasy 客户端,所以我不得不使用依赖项:
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-client</artifactId>
<version>3.0.26.Final</version>
</dependency>
然后我创建我的 httpClient :
RxClient<RxCompletionStageInvoker> httpClient = new JerseyClientBuilder(environment)
.using(configuration.getJerseyClientConfiguration())
.buildRx(getName(), RxCompletionStageInvoker.class);
然后我尝试使用客户端,例如:
httpClient
.target(path)
.request()
.get();
我收到错误:
java.lang.ClassCastException: org.jboss.resteasy.client.jaxrs.internal.ClientRequestContextImpl cannot be cast to org.glassfish.jersey.client.ClientRequest
当我删除依赖项时,我得到了 JercyClient 并且找到了所有 httpRequests 但 Keycloak 构建器失败,当我使用 RestEasy 依赖项时,keyCloak 成功但所有其他 http 请求失败 以前有人遇到过这个问题吗?有什么方法可以控制何时获得 resteasy 客户端以及何时获得 jersey 客户端?
解决方案是使用 RestEasy 依赖但不使用 JersyClientBuilder:
Client httpClient = new ResteasyClientBuilder().build();