2016-10-04 23 views
6

bulunamıyor Keycloak REST API'sini denemeye çalışıyorum. Versiyon 2.1.0.Final. Yöneticiye tarayıcıdan SSL ile sorunsuz olarak erişebiliyorum.RESTEASY003145: MessageCodyReader içerik türü uygulama/json ve tür sınıfı org.keycloak.representations.AccessTokenResponse

Keycloak keycloakClient = KeycloakBuilder.builder() 
.serverUrl("https://keycloak.intra.rps.com.br/auth") 
.realm("testrealm") 
.username("development") 
.password("development") 
.clientId("admin-cli") 
.resteasyClient(new ResteasyClientBuilder().connectionPoolSize(10).build()) 
.build(); 
List<RealmRepresentation> rr = keycloakClient.realms().findAll(); 

Ve hata var:

Ben yukarıdaki kodu kullanıyorum

javax.ws.rs.ProcessingException: RESTEASY003145: Unable to find a MessageBodyReader of content-type application/json and type class org.keycloak.representations.AccessTokenResponse 

javax.ws.rs.client.ResponseProcessingException: 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.client.jaxrs.internal.ClientInvocation.extractResult(ClientInvocation.java:141) 
at org.jboss.resteasy.client.jaxrs.internal.proxy.extractors.BodyEntityExtractor.extractEntity(BodyEntityExtractor.java:60) 
at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.invoke(ClientInvoker.java:104) 
at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientProxy.invoke(ClientProxy.java:76) 
at com.sun.proxy.$Proxy20.grantToken(Unknown Source) 
at org.keycloak.admin.client.token.TokenManager.grantToken(TokenManager.java:85) 
at org.keycloak.admin.client.token.TokenManager.getAccessToken(TokenManager.java:65) 
at org.keycloak.admin.client.token.TokenManager.getAccessTokenString(TokenManager.java:60) 
at org.keycloak.admin.client.resource.BearerAuthFilter.filter(BearerAuthFilter.java:52) 
at org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.invoke(ClientInvocation.java:413) 
at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.invoke(ClientInvoker.java:102) 
at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientProxy.invoke(ClientProxy.java:76) 
at com.sun.proxy.$Proxy22.findAll(Unknown Source) 
at br.com.rps.itsm.sd.SgpKeycloakClient.doGet(SgpKeycloakClient.java:71) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85) 
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) 
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) 
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131) 
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) 
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) 
at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) 
at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60) 
at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77) 
at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43) 
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:284) 
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:263) 
at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81) 
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:174) 
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202) 
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:793) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at java.lang.Thread.run(Thread.java:745) 
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:42) 
at org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.getReader(AbstractReaderInterceptorContext.java:75) 
at org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.proceed(AbstractReaderInterceptorContext.java:52) 
at org.jboss.resteasy.plugins.interceptors.encoding.GZIPDecodingInterceptor.aroundReadFrom(GZIPDecodingInterceptor.java:59) 
at org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.proceed(AbstractReaderInterceptorContext.java:55) 
at org.jboss.resteasy.client.jaxrs.internal.ClientResponse.readFrom(ClientResponse.java:251) 
at org.jboss.resteasy.client.jaxrs.internal.ClientResponse.readEntity(ClientResponse.java:181) 
at org.jboss.resteasy.specimpl.BuiltResponse.readEntity(BuiltResponse.java:213) 
at org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.extractResult(ClientInvocation.java:105) 

Yukarıda bağımlılıkları eklendi, ama benim sorunu çözmezse:

<dependency> 
      <groupId>org.jboss.resteasy</groupId> 
      <artifactId>resteasy-client</artifactId> 
      <version>3.0.19.Final</version> 
    </dependency> 
    <dependency> 
      <groupId>org.jboss.resteasy</groupId> 
      <artifactId>resteasy-jackson-provider</artifactId> 
      <version>3.0.19.Final</version> 
    </dependency> 

Herhangi bir ipucu?

+0

sen çözüldü mü? Aynı mesajı aldım ... – MatteoM

+0

Çözdün mü? –

+0

Olası kopyası [RestEasy - MessageBodyReader bulamıyor mu?] (Http://stackoverflow.com/questions/16453183/resteasy-unable-to-find-messagebodyreader) – Gregor

cevap

6

Çözdüm !! org.jboss.resteasy.plugins.providers.jackson.ResteasyJacksonProvider'ı META-INF/services/javax.ws.rs.ext.Providers dosyasına eklemeniz ve çalıştırılabilir jar'ınızı çalıştırmanız gerekir.

+0

veya org.jboss.resteasy.plugins.providers.jackson .ResteasyJackson2Provider – ArcTanH

5

bu konuyu

<dependency> 
     <groupId>org.jboss.resteasy</groupId> 
     <artifactId>resteasy-jackson2-provider</artifactId> 
     <version>3.1.0.Final</version> 
    </dependency> 
0

düzeltmek için bağımlılık kullanılan Yoksa sonra proxy ile daha iyi müşteri oluşturursanız önce sağlayıcı fabrikası başlatmak için:

ResteasyProviderFactory instance=ResteasyProviderFactory.getInstance(); 
    RegisterBuiltin.register(instance); 
    instance.registerProvider(ResteasyJackson2Provider.class); 
İlgili konular