У меня есть приложение на основе Wildfly 15, которое использует Yasson для сериализации объектов в запросах REST. Я использую javaee-api 8.0.1 и создал ContextResolver
для настройки формата сериализации даты, как в { ссылка }.
@Provider
@Produces(MediaType.APPLICATION_JSON)
public class JsonbDateConfig implements ContextResolver<Jsonb> {
// ...
}
Однако при отправке запросов REST с использованием В следующем коде конфигурация игнорируется (никакая точка останова отладки в методах JsonbDateConfig
не запускается).
Response response = target.path(REST_SERVICE_NAME)
.request()
.post(Entity.entity(dataTO, MediaType.APPLICATION_JSON));
Следовательно, результирующий JSON содержит неправильно отформатированное значение даты.
Я мог бы создать JsonbAdapter
и добавить аннотацию @JsonbTypeAdapter(DateAdapter.class)
в поле типа java.util.Date
. Однако я предпочитаю решение, которое применяется ко всем полям даты. Что такое решение, когда ContextResolver
не работает?
Обратите внимание, что Wildfly загружает мой класс реализации ContextResolver
во время запуска (точка останова загрузки класса), и этот преобразователь используется при получении входящих запросов REST.