Совместимость кафка send в разном окружении
Вопрос по использованию библиотек разных версий. Есть сервис отправляющий сообщение в кафку изначально сделанный в окружении spring-boot 3 с spring-kafka-3.1.6 Я пытаюсь заюзать этот сервис в spring boot 2 и не понимаю почему при исполнении ищет класс из версии библиотеки 3 версии. (в classpath все нужное, spring-kafka-2.8.11) По сути окружение имеет kafka template из 2й кафки.
В чём суть.
var message = new GenericMessage<>(bodyMessage,
Map.of("kafka_messageKey", keyId());
kafkaTemplate.send(message).get();
kafkaTemplate.send
- в spring-kafka-3.1.6 возвращает CompletableFuture
- в spring-kafka-2.8.11 Возвращает ListenableFuture
По сути оба имлементируют интерфейс Future и есть метод get()
Но при исполнении kafkaTemplate.send(message)
я получаю ошибку
java.lang.NoSuchMethodError: 'java.util.concurrent.CompletableFuture org.springframework.kafka.core.KafkaTemplate.send(org.springframework.messaging.Message)
хотя если остановится и выполнить через evaluateExpression то ошибки нет.