sunmingtao / sample-code

3 stars 4 forks source link

RESTEASY003145: Unable to find a MessageBodyReader of content-type application/json and type class org.keycloak.representations.AccessTokenResponse #247

Closed sunmingtao closed 3 years ago

sunmingtao commented 3 years ago

Invoke keycloak rest api

Keycloak kc = KeycloakBuilder.builder().serverUrl(authUrl).realm(troveRealm)
                .grantType(OAuth2Constants.CLIENT_CREDENTIALS).clientId(troveApiClientId).clientSecret(troveApiClientSecret)
                .resteasyClient(new ResteasyClientBuilder().connectionPoolSize(10).build()).build();
kc.realm(shireRealm).groups().groups();

throws an error

Caused by: javax.ws.rs.ProcessingException: RESTEASY003145: Unable to find a MessageBodyReader of content-type application/json and type class org.keycloak.representations.AccessTokenResponse
    at org.jboss.resteasy.core.interception.ClientReaderInterceptorContext.throwReaderNotFound(ClientReaderInterceptorContext.java:37)
    at org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.getReader(AbstractReaderInterceptorContext.java:80)
    at org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.proceed(AbstractReaderInterceptorContext.java:53)
    at org.jboss.resteasy.client.jaxrs.internal.ClientResponse.readFrom(ClientResponse.java:211)
    at org.jboss.resteasy.specimpl.BuiltResponse.readEntity(BuiltResponse.java:88)
    at org.jboss.resteasy.specimpl.AbstractBuiltResponse.readEntity(AbstractBuiltResponse.java:256)
    at org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.extractResult(ClientInvocation.java:127)
    ... 100 common frames omitted

Gradle dependency (all latest version)

compile 'com.google.oauth-client:google-oauth-client:1.31.2'
compile 'com.google.api-client:google-api-client-gson:1.31.1'
compile 'org.keycloak:keycloak-admin-client:11.0.3'
compile 'org.jboss.resteasy:resteasy-jaxrs:3.14.0.Final'
compile 'org.jboss.resteasy:resteasy-client:3.14.0.Final'
compile 'org.jboss.resteasy:resteasy-jackson2-provider:3.14.0.Final'
sunmingtao commented 3 years ago

Turns out keycloak admin client version 11.0.3 is not compatible with resteasy 3.14.0.Final. Need to downgrade it to 3.9.1.Final.

Check the maven site for compatibility issue.

https://mvnrepository.com/artifact/org.keycloak/keycloak-admin-client/11.0.3