У меня есть RestEasyClient, который должен десериализовать объект, внутри которого находится java.time.Instant. Попытался зарегистрировать новый JavaTimeModule от jsr310, но все равно получил ошибки:
ObjectMapper mapper = new ObjectMapper()
.registerModule(new JavaTimeModule());
ResteasyClient client = new ResteasyClientBuilder()
.register(mapper)
.build();
ResteasyWebTarget target = client.target(UriBuilder.fromPath(SERVICE_URL + "/api"));
Ошибка:
Невозможно создать экземпляр java.time.Instant: не найдено подходящего конструктора, невозможно десериализовать из значения Object (отсутствует конструктор или создатель по умолчанию или, возможно, необходимо добавить / включить информацию о типе?)
После изменения Rest Server для правильной сериализации класса Instant (например: "fromTime": 1525681860)
Новая ошибка:
Невозможно создать экземпляр java.time.Instant: нет конструктора с двумя аргументами / двумя аргументами / метода фабрики для десериализации из числового значения (1.52568186E9)
Мне удалось смоделировать это:
ObjectMapper deserializer = new ObjectMapper()
.registerModule(new JavaTimeModule());
Instant probe = deserializer.readValue("1525681860", Instant.class);
System.out.println(probe);
Если я удаляю строку «registerModule», я повторяю ту же ошибку.
Следовательно, вывод заключается в том, что ResteasyClient не регистрирует модуль. Я определенно делаю что-то не так.