How to register jackson json-Anbieter für cxf jax-rs 2.0-client?

Ich habe eine JAX-RS-client, der macht einen einfachen GET-request. Ich bin mit dem CXF Implementierung und Spring für DI. Der Anruf ist erfolgreich und ich bekomme einen response-code 200 zurück. Aber ich bin immer ein Fehler beim Lesen der Antwort in mein POJO.

Ausnahme:

[2015-05-08 16:11:55,457][ERROR][org.apache.cxf.jaxrs.utils.JAXRSUtils]: No message body reader has been found for class com.voya.refapp.domain.Customer, ContentType: application/json
[2015-05-08 16:11:55,468][ERROR][com.voya.refapp.service.CustomerServiceImpl]: filterByName() - Exception occurred
javax.ws.rs.client.ResponseProcessingException: No message body reader has been found for class com.voya.refapp.domain.Customer, ContentType: application/json
    at org.apache.cxf.jaxrs.impl.ResponseImpl.reportMessageHandlerProblem(ResponseImpl.java:433) ~[cxf-rt-frontend-jaxrs-3.0.4.jar:3.0.4]
    at org.apache.cxf.jaxrs.impl.ResponseImpl.doReadEntity(ResponseImpl.java:384) ~[cxf-rt-frontend-jaxrs-3.0.4.jar:3.0.4]

Code:

Client client = ClientBuilder.newClient();
WebTarget target = client.target("http://localhost:8080/rest").path("customers/1");
Invocation.Builder builder = target.request(MediaType.APPLICATION_JSON_TYPE);
Response response = builder.get();  //Successful
Customer customer = response.readEntity(Customer.class);  //Fails

Habe ich die unten Abhängigkeit, wie vorgeschlagen, in diese Antwort in meinem classpath, scheint es nicht zu werden automatisch aufgenommen.

    <dependency>
        <groupId>com.fasterxml.jackson.jaxrs</groupId>
        <artifactId>jackson-jaxrs-json-provider</artifactId>
    </dependency>

Ich habe auch versucht, die Registrierung der json-Anbieter beim erstellen der client:

Client client = ClientBuilder.newClient().register(new JacsksonJsonProvider());

und

Client client = ClientBuilder.newClient().register(JacsksonJsonProvider.class);

Aber keine dieser Optionen gut geklappt. Ich bekam eine andere Ausnahme ist, wenn registrierte ich die json-provider über eine der oben genannten Optionen:

javax.ws.rs.client.ResponseProcessingException: Problem with reading the data

Update:

Registrierung der json-Anbieter fein gearbeitet mit ClientBuilder.newClient().register(JacsksonJsonProvider.class). Das Problem wurde mit den Daten (wie die Ausnahme oben klar.. ich fühle mich jetzt dumm :(). Ich hatte ein Boolesches Feld in der json mit dem Namen "aktiv", aber es hieß "isActive" in der POJO. Einmal habe ich noch die Anmerkung @JsonProperty("active") auf das Feld in POJO, es begann fein

Schreibe einen Kommentar