Я открыл для этого проблему GitHub .
РЕДАКТИРОВАТЬ
Обходной путь - это работает ...
@SpringBootApplication
@EnableBinding(Source.class)
public class So54257687Application {
public static void main(String[] args) {
SpringApplication.run(So54257687Application.class, args);
}
@Bean
public ApplicationRunner runner(MessageChannel output) {
return args -> output.send(new GenericMessage<>(KafkaNull.INSTANCE));
}
@KafkaListener(id = "foo", topics = "output")
public void listen(@Payload(required = false) byte[] in) {
System.out.println(in);
}
@Bean
@StreamMessageConverter
public MessageConverter kafkaNullConverter() {
class KafkaNullConverter extends AbstractMessageConverter {
KafkaNullConverter() {
super(Collections.emptyList());
}
@Override
protected boolean supports(Class> clazz) {
return KafkaNull.class.equals(clazz);
}
@Override
protected Object convertFromInternal(Message> message, Class> targetClass, Object conversionHint) {
return message.getPayload();
}
@Override
protected Object convertToInternal(Object payload, MessageHeaders headers, Object conversionHint) {
return payload;
}
}
return new KafkaNullConverter();
}
}
Хорошо хорошо …, по-видимому, вот ответ и возможные решения или обходные решения.