2016-10-04 15 views
6

का संदेशबॉडी रीडर खोजने में असमर्थ मैं Keycloak REST API का परीक्षण करने का प्रयास कर रहा हूं। संस्करण 2.1.0 स्थापित किया गया। अंतिम। मैं समस्याओं के बिना एसएसएल के साथ ब्राउज़र के माध्यम से व्यवस्थापक तक पहुंच सकते हैं।RESTEASY003145: सामग्री-प्रकार एप्लिकेशन/जेसन और टाइप क्लास 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(); 

और त्रुटि मिली:

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) 

मैं निर्भरता ऊपर जोड़ा है, लेकिन मेरी समस्या का समाधान नहीं है:

<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> 

कोई सुराग?

+0

आप हल किया? मुझे एक ही संदेश मिला ... – MatteoM

+0

क्या आपने इसे हल किया है? –

+0

संभावित डुप्लिकेट [RestEasy - MessageBodyReader को खोजने में असमर्थ?] (Http://stackoverflow.com/questions/16453183/resteasy-unable-to-find-messagebodyreader) – Gregor

उत्तर

6

मैंने हल किया !! आपको org.jboss.resteasy.plugins.providers.jackson.ResteasyJackson प्रदाता को मेटा-आईएनएफ/सेवाओं/javax.ws.rs.ext.Providers फ़ाइल में जोड़ना होगा, फिर अपने निष्पादन योग्य जार को चलाएं।

+0

या org.jboss.resteasy.plugins.providers.jackson .ResteasyJackson2Provider – ArcTanH

5

मैं निर्भरता इस्तेमाल किया

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

इस समस्या को हल करने के लिए या यदि आप तो प्रॉक्सी के साथ ग्राहक बनाने के बेहतर से पहले प्रदाता कारखाना प्रारंभ करने में:

ResteasyProviderFactory instance=ResteasyProviderFactory.getInstance(); 
    RegisterBuiltin.register(instance); 
    instance.registerProvider(ResteasyJackson2Provider.class); 
संबंधित मुद्दे