Невозможно десериализовать полезную нагрузку в Kafka Consumer при использовании @StreamListener (Spring cloud stream) - PullRequest
0 голосов
/ 23 мая 2019

У меня есть производитель коннекторов kafka-connect jdbc, который публикует сообщение в теме А. Я могу подтвердить, что для конвертера val установлено значение JsonSerialiser. Еще один микросервис пытается получить сообщения из темы А.

@StreamListener(A.class)
public void handleMessage(@Payload PojoA pojoA){}

но проблема здесь в pojoA, значения не устанавливаются.

Насколько я понимаю, Spring будет применять соответствующий messageConverter и преобразовывать его в pojoA, учитывая, что у меня есть аннотация @JsonProperty в pojoA. Но этого, похоже, не происходит и не выдает никакой ошибки.

Когда я меняю

public void handleMessage(@Payload String message){}

Я мог видеть, как весь сырой JSON печатается с Struct{ }

Я могу подтвердить, что val.converter установлен в JsonSerialiser в Producer.

Что нужно сделать, чтобы Spring автоматически преобразовал сообщение в Pojo? Я не думаю, что есть необходимость в CustomMessageConverter, так как это json, который нужно преобразовать.

...