Jersey 2.8 client is not ignoring unknown properties during deserialization Jersey 2.8 client is not ignoring unknown properties during deserialization json json

Jersey 2.8 client is not ignoring unknown properties during deserialization


Try initializing the Jersey client with a JacksonJsonProvider that's been configured appropriately:

final JacksonJsonProvider jacksonJsonProvider = new JacksonJaxbJsonProvider().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);final Client client = ClientBuilder.newClient(new ClientConfig(jacksonJsonProvider));

This was tested with Jackson 2.5.1 and Jersey 2.17


I had same issue and looking for a solution... find your proposition and it works for me :)

My test is very basic / see here below :

    Client client = ClientBuilder.newClient()            .register(JacksonFeature.class).register(JacksonConfigurator.class);    WebTarget wt = client.target(REST_SERVICE_URL).path(            "amount");    wt = wt.queryParam("from", "USD");    ConverterResponse cr=wt.request().get(ConverterResponse.class);

If I don't register your JacksonConfigurator, I get same exception as yours :

UnrecognizedPropertyException: Unrecognized field 

Because converterResponse defines a subset of REST response object methods.

Thank you very much !


Jersey version 2.30:

Exception:Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "failedLoginCount" at [Source: org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$UnCloseableInputStream@77fbf8c9; line: 1, column: 100] (through reference chain: com.xx.XXX["failedLoginCount"]) at com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:62)

it works in below code:

<dependency>    <groupId>org.glassfish.jersey.media</groupId>    <artifactId>jersey-media-json-jackson</artifactId>    <version>${jersey.version}</version></dependency>
import com.fasterxml.jackson.databind.DeserializationFeature;import org.glassfish.jersey.client.ClientConfig;import org.glassfish.jersey.jackson.internal.jackson.jaxrs.json.JacksonJaxbJsonProvider;import org.glassfish.jersey.jackson.internal.jackson.jaxrs.json.JacksonJsonProvider;public class ServiceClient {    private Client client;    public ServiceClient() {        ClientConfig config = new ClientConfig();        JacksonJsonProvider            jacksonJsonProvider = new JacksonJaxbJsonProvider().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);        config.register(jacksonJsonProvider);        client = ClientBuilder.newClient(config);    }}