I would like to use the RESTEasy client to make some API calls to get user data for my User Federation SPI.
I have the following code:
public static UserResource createClient(String baseUrl){
PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(cm).build();
cm.setMaxTotal(200);
cm.setDefaultMaxPerRoute(20);
ApacheHttpClient4Engine engine = new ApacheHttpClient4Engine(httpClient);
ResteasyClient client = new ResteasyClientBuilder().httpEngine(engine).build();
ResteasyWebTarget target = client.target(UriBuilder.fromPath(baseUrl));
return target.proxy(UserResource.class);
}
My error log:
18:44:24,376 ERROR [org.keycloak.services.error.KeycloakErrorHandler] (default task-2) Uncaught server error: java.lang.LinkageError: loader constraint violation: when resolving method 'void org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient4Engine.<init>(org.apache.http.client.HttpClient)' the class loader 'deployment.wb-extensions.ear.wb-user-storage-provider-1.0.0.jar' @422399e3 of the current class, com/crowdpolicy/crossover/storage/api/UserApiUtil, and the class loader 'deployment.wb-extensions.ear' @2e119c49 for the method's defining class, org/jboss/resteasy/client/jaxrs/engines/ApacheHttpClient4Engine, have different Class objects for the type org/apache/http/client/HttpClient used in the signature (com.crowdpolicy.crossover.storage.api.UserApiUtil is in unnamed module of loader 'deployment.wb-extensions.ear.wb-user-storage-provider-1.0.0.jar' @422399e3, parent loader 'app'; org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient4Engine is in unnamed module of loader 'deployment.wb-extensions.ear' @2e119c49, parent loader 'app')
What should I edit to make this work ?