Обработка Java 8 LocalDate с сериализатором Kafka Avro и автогенерацией - PullRequest
0 голосов
/ 31 января 2020

FYI: Spring Boot 2.2.4.RELEASE, Spring Cloud Hoxton.SR1, Confluent Docker платформа 5.4.0 с соответствующим сериализатором Kafka Avro, Spring Cloud Stream Schema 2.2.1.RELEASE (avro 1.9.1) Запуск там: https://www.baeldung.com/spring-cloud-stream-kafka-avro-confluent

Использование ConfluentSchemaRegistryClient, но не удается загрузить локальные файлы схемы avro, не знаю почему, я пытался использовать Spring.cloud.stream.schema Spring. .avro. dynamicSchemaGenerationEnabled свойство со значением true. Конвертер сообщений активируется с помощью spring.cloud.stream.bindings.output / input.contentType = application / * + avro

Моя первая проблема заключалась в том, что значения, допускающие обнуление, не могли поддерживаться, поэтому я сам удивлялся как указать, когда поля обнуляются при автогенерации схем (это проблема со стороны производителей). После решения этой проблемы путем установки ненулевых значений в моей информационной системе :-( Я столкнулся с другой проблемой с полями LocalDate, так как LocalDate не имеет конструктора по умолчанию , поэтому десериализация завершается неудачно (это проблема для потребителей). side).

Таким образом, я перенес свою программу на использование Joda Time вместо этого, но получил ту же проблему, что и его класс LocalDate - встраивание поля Chronology, у которого также нет конструктора по умолчанию ...

Итак, мой вопрос: могу ли я использовать какие-то конвертеры для обеспечения сквозной связи, содержащей Java 8 локальных дат с Avro? Я читал, что Avro 1.9 должен был их поддерживать ( https://issues.apache.org/jira/browse/AVRO-2079), так или иначе, так что я могу делать что-то не так, но моя схема Avro вручную довольно похожа на сгенерированную (но без обнуляемых типов, хотя).

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...