Использование @embeddedkafka с кафка-клиентами 3.9.1JAVA

Программисты JAVA общаются здесь
Anonymous
Использование @embeddedkafka с кафка-клиентами 3.9.1

Сообщение Anonymous »

Я работаю над аппликацией, используя встроенную kafka от org.springframework.kafka: Spring-Kafka-test: 3.3.5 для целей тестирования. Все работало, пока мне не пришлось изменить версию org.apache.kafka: kafka-clients с 3.8.1 до 3.9.1 . Все тесты не сбои с nosuchmethoderror :

Код: Выделить всё

Caused by: java.lang.NoSuchMethodError: 'org.apache.kafka.common.network.ChannelBuilder org.apache.kafka.common.network.ChannelBuilders.serverChannelBuilder(org.apache.kafka.common.network.ListenerName, boolean, org.apache.kafka.common.security.auth.SecurityProtocol, org.apache.kafka.common.config.AbstractConfig, org.apache.kafka.common.security.authenticator.CredentialCache, org.apache.kafka.common.security.token.delegation.internals.DelegationTokenCache, org.apache.kafka.common.utils.Time, org.apache.kafka.common.utils.LogContext, java.util.function.Supplier)'
at kafka.network.Processor.(SocketServer.scala:977)
at kafka.network.Acceptor.newProcessor(SocketServer.scala:882)
at kafka.network.Acceptor.$anonfun$addProcessors$1(SocketServer.scala:852)
at scala.collection.immutable.Range.foreach$mVc$sp(Range.scala:190)
at kafka.network.Acceptor.addProcessors(SocketServer.scala:851)
at kafka.network.DataPlaneAcceptor.configure(SocketServer.scala:525)
at kafka.network.SocketServer.createDataPlaneAcceptorAndProcessors(SocketServer.scala:253)
at kafka.network.SocketServer.$anonfun$new$31(SocketServer.scala:177)
, который брошен внутрь org.apache.kafka: kafka_2.13: 3.8.1 . Я предполагал, что наталкивание всех зависимостей org.apache.kafka до 3.9.1 поможет, поэтому я сделал, и результат:

Код: Выделить всё

java.lang.NoClassDefFoundError: kafka/utils/TestUtils
at org.springframework.kafka.test.EmbeddedKafkaZKBroker$EmbeddedZookeeper.(EmbeddedKafkaZKBroker.java:800) ~[spring-kafka-test-3.3.5.jar:3.3.5]
at org.springframework.kafka.test.EmbeddedKafkaZKBroker.afterPropertiesSet(EmbeddedKafkaZKBroker.java:296) ~[spring-kafka-test-3.3.5.jar:3.3.5]
at org.springframework.kafka.test.EmbeddedKafkaBrokerFactory.create(EmbeddedKafkaBrokerFactory.java:119) ~[spring-kafka-test-3.3.5.jar:3.3.5]
at org.springframework.kafka.test.context.EmbeddedKafkaContextCustomizer.customizeContext(EmbeddedKafkaContextCustomizer.java:60) ~[spring-kafka-test-3.3.5.jar:3.3.5]
at org.springframework.boot.test.context.SpringBootContextLoader$ContextCustomizerAdapter.initialize(SpringBootContextLoader.java:453) ~[spring-boot-test-3.4.5.jar:3.4.5]
at org.springframework.boot.SpringApplication.applyInitializers(SpringApplication.java:612) ~[spring-boot-3.4.5.jar:3.4.5]
at org.springframework.boot.SpringApplication.prepareContext(SpringApplication.java:383) ~[spring-boot-3.4.5.jar:3.4.5]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:317) ~[spring-boot-3.4.5.jar:3.4.5]
На самом деле org.springframework.kafka.test.embeddedkafkazkbroker использует kafka.utils.testutils из kafka_2.13 , который присутствовал в 3.8.1. , но не доступен в 3.9.1 . Я попытался ударить Spring-Kafka-test до 3.3.7. , но результат одинаково. Есть ли какой-либо возможный способ сделать кафка-клиенты: 3.9.1 и @embeddedkafka работать вместе?

Подробнее здесь: https://stackoverflow.com/questions/796 ... ents-3-9-1

Вернуться в «JAVA»