2017-11-02 3 views
0

ich einfachen Code haben folgende, die funktioniert, wenn ich die AbhängigkeitFrage, die sich während der Benutzer in Openfire Schaffung

AuthenticationToken authenticationToken = new AuthenticationToken("admin", "password"); 
     RestApiClient restApiClient = new RestApiClient("http://192.168.20.97", 7070, authenticationToken); 
     UserEntity userEntity = new UserEntity("dasddasd","dsadsadasd", "", "password"); 
     restApiClient.createUser(userEntity); 


<dependency> 
    <groupId>org.jboss.resteasy</groupId> 
    <artifactId>resteasy-client</artifactId> 
    <version>3.1.4.Final</version> 
</dependency> 

Und nicht haben, wenn ich über die Abhängigkeit hinzufügen Würfen es Fehler folgende

Exception in thread "main" javax.ws.rs.ProcessingException: RESTEASY004655: Unable to invoke request 
    at org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient4Engine.invoke(ApacheHttpClient4Engine.java:316) 
    at org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.invoke(ClientInvocation.java:462) 
    at org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.invoke(ClientInvocation.java:498) 
    at org.jboss.resteasy.client.jaxrs.internal.ClientInvocationBuilder.method(ClientInvocationBuilder.java:295) 
    at org.igniterealtime.restclient.RestClient.call(RestClient.java:145) 
    at org.igniterealtime.restclient.RestClient.post(RestClient.java:91) 
    at org.igniterealtime.restclient.RestApiClient.createUser(RestApiClient.java:92) 
    at app.Test.main(Test.java:20) 
Caused by: javax.ws.rs.ProcessingException: RESTEASY003215: could not find writer for content-type application/xml type: org.igniterealtime.restclient.entity.UserEntity 
    at org.jboss.resteasy.core.interception.jaxrs.ClientWriterInterceptorContext.throwWriterNotFoundException(ClientWriterInterceptorContext.java:40) 
    at org.jboss.resteasy.core.interception.jaxrs.AbstractWriterInterceptorContext.getWriter(AbstractWriterInterceptorContext.java:146) 
    at org.jboss.resteasy.core.interception.jaxrs.AbstractWriterInterceptorContext.proceed(AbstractWriterInterceptorContext.java:121) 
    at org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.writeRequestBody(ClientInvocation.java:390) 
    at org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient4Engine.writeRequestBodyToOutputStream(ApacheHttpClient4Engine.java:630) 
    at org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient4Engine.buildEntity(ApacheHttpClient4Engine.java:595) 
    at org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient4Engine.loadHttpMethod(ApacheHttpClient4Engine.java:483) 
    at org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient4Engine.invoke(ApacheHttpClient4Engine.java:305) 
    ... 7 more 

Ich brauche über die Abhängigkeit für die Erstellung Benutzer in Keycloak

Antwort

0

Sie müssen wahrscheinlich nur die folgende Abhängigkeit hinzufügen, um eine Jackson fr zu erhalten Amework integriert. Es wird JSON und XML automatisch marshalieren/entpacken.

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

Es ist bereits in pom –

+0

Update Ich habe festgestellt, dass Resteasy-Client verursacht Abhängigkeit von Drittanbietern Rasteasy-Jaxrs hinzugefügt wird, was nützlich ist in Keycloak Benutzererstellung, sondern verursacht Problem beim Erstellen Opefire Benutzer –

0

Letztlich ist die Frage XML vs JSON. Wenn Sie sich die source to RestClient ansehen, die von RestApiClient verwendet wird, wird immer XML gesendet. Keycloak ist immer JSON und wird daher nicht in der Lage sein, XML zu sprechen.

Es sieht so aus, als könnten Sie den Header Accepts mit RestClientBuilder festlegen, aber der Content-Type ist fest codiert.

Verwandte Themen