Метод getContext () CustomContextResolver не вызывается Джексоном

Я борюсь с этой проблемой уже несколько дней и не знаю, как ее решить. Любая быстрая помощь будет благодарна. Мне нужно преобразовать LocalDate из строки JSON, которую я получаю из сборки службы REST, используя apache CXF и Джексона. Я написал собственный ContextResolver и зарегистрировал JavaTimeModule в объекте Mapper. Когда я запускаю приложение, вызывается конструктор по умолчанию, это означает, что оно было загружено, но метод getContext (), который возвращает ObjectMapper, никогда не вызывается.

Я зарегистрировал один и тот же ContextResolver на стороне сервера и клиента. Все зависимости на месте (привязка данных Джексона, ядро, аннотация, тип данных-jsr310).

Я могу получить ответ JSON, когда я нажимаю REST URI прямо в браузере. Проблема возникает, когда я вызываю тот же URI-аннотированный метод из клиентского кода. Ниже приведен мой клиентский код.

import javax.ws.rs.ext.ContextResolver;
import javax.ws.rs.ext.Provider;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;


@Provider //makes this bean a Provider
public class LocalDateObjectMapperContextResolver implements ContextResolver<ObjectMapper>{

    private final ObjectMapper MAPPER;

    public LocalDateObjectMapperContextResolver() {
        MAPPER = new ObjectMapper();
        MAPPER.registerModule(new JavaTimeModule());
        MAPPER.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
    }

    @Override
    public ObjectMapper getContext(Class<?> type) {
        return MAPPER;
    }

}
<jaxrs:client id="testclient"
    serviceClass="package1.RESTService"
    username="abc"
    password="abc"
    address="$serviceURL">

    <jaxrs:features>
        <bean class="org.apache.cxf.transport.common.gzip.GZIPFeature"/>
        <cxf:logging/>
    </jaxrs:features>

    <jaxrs:providers>
        <bean class="org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider"/>
        <bean class="mypackage.LocalDateObjectMapperContextResolver"/>
    </jaxrs:providers>

</jaxrs:client>

Таким же образом, этот contextResolver регистрируется на стороне сервера также под

<jaxrs:server>
.....
 <jaxrs:providers>
    <bean class="org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider"/>
            <bean class="mypackage.LocalDateObjectMapperContextResolver"/>
  </jaxrs:providers>
</jaxrs:server>

Любая причина, почему getContext не вызывается?

Я также попытался расширить ObjectMapper и зарегистрировать javaTimeModule там, но не знаю, как зарегистрировать customObjectMapper в потоке Джексона. Я просто поместил конструктор по умолчанию для тестирования, и он вызывается при запуске приложения, но опять же, без результатов, я все еще получаю ту же ошибку.

Ошибка: не найден подходящий конструктор для типа [простой тип, класс java.time.LocalDate]: невозможно создать экземпляр объекта JSON (нужно добавить / включить информацию о типе?)

Ответы на вопрос(2)

Ваш ответ на вопрос