Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring云流-依赖性问题_Java_Spring Boot_Gradle_Apache Kafka_Spring Cloud Stream - Fatal编程技术网

Java Spring云流-依赖性问题

Java Spring云流-依赖性问题,java,spring-boot,gradle,apache-kafka,spring-cloud-stream,Java,Spring Boot,Gradle,Apache Kafka,Spring Cloud Stream,我试图在我的下游主题上生成一个avro字节流,如下所示: producer.produce(mapper.writeValueAsString(obj).getBytes()); 我目前收到这个错误 org.apache.kafka.common.KafkaException: Failed to construct kafka producer at org.apache.kafka.clients.producer.KafkaProducer.<init>(Kafka

我试图在我的下游主题上生成一个avro字节流,如下所示:

producer.produce(mapper.writeValueAsString(obj).getBytes());

我目前收到这个错误

org.apache.kafka.common.KafkaException: Failed to construct kafka producer
    at org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:433) ~[kafka-clients-2.3.1.jar:na]
    at org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:287) ~[kafka-clients-2.3.1.jar:na]
    at org.springframework.kafka.core.DefaultKafkaProducerFactory.createRawProducer(DefaultKafkaProducerFactory.java:519) ~[spring-kafka-2.3.8.RELEASE.jar:2.3.8.RELEASE]
    at org.springframework.kafka.core.DefaultKafkaProducerFactory.createKafkaProducer(DefaultKafkaProducerFactory.java:420) ~[spring-kafka-2.3.8.RELEASE.jar:2.3.8.RELEASE]
    at org.springframework.kafka.core.DefaultKafkaProducerFactory.createProducer(DefaultKafkaProducerFactory.java:407) ~[spring-kafka-2.3.8.RELEASE.jar:2.3.8.RELEASE]
    at org.springframework.kafka.core.DefaultKafkaProducerFactory.createProducer(DefaultKafkaProducerFactory.java:374) ~[spring-kafka-2.3.8.RELEASE.jar:2.3.8.RELEASE]
    at org.springframework.cloud.stream.binder.kafka.KafkaMessageChannelBinder.lambda$createProducerMessageHandler$0(KafkaMessageChannelBinder.java:356) ~[spring-cloud-stream-binder-kafka-3.0.4.RELEASE.jar:3.0.4.RELEASE]
    at org.springframework.cloud.stream.binder.kafka.provisioning.KafkaTopicProvisioner.lambda$getPartitionsForTopic$2(KafkaTopicProvisioner.java:472) ~[spring-cloud-stream-binder-kafka-core-3.0.4.RELEASE.jar:3.0.4.RELEASE]
    at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:287) ~[spring-retry-1.2.5.RELEASE.jar:na]
    at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:164) ~[spring-retry-1.2.5.RELEASE.jar:na]
    at org.springframework.cloud.stream.binder.kafka.provisioning.KafkaTopicProvisioner.getPartitionsForTopic(KafkaTopicProvisioner.java:467) ~[spring-cloud-stream-binder-kafka-core-3.0.4.RELEASE.jar:3.0.4.RELEASE]
    at org.springframework.cloud.stream.binder.kafka.KafkaMessageChannelBinder.createProducerMessageHandler(KafkaMessageChannelBinder.java:354) ~[spring-cloud-stream-binder-kafka-3.0.4.RELEASE.jar:3.0.4.RELEASE]
    at org.springframework.cloud.stream.binder.kafka.KafkaMessageChannelBinder.createProducerMessageHandler(KafkaMessageChannelBinder.java:150) ~[spring-cloud-stream-binder-kafka-3.0.4.RELEASE.jar:3.0.4.RELEASE]
    at org.springframework.cloud.stream.binder.AbstractMessageChannelBinder.doBindProducer(AbstractMessageChannelBinder.java:225) ~[spring-cloud-stream-3.0.4.RELEASE.jar:3.0.4.RELEASE]
    at org.springframework.cloud.stream.binder.AbstractMessageChannelBinder.doBindProducer(AbstractMessageChannelBinder.java:90) ~[spring-cloud-stream-3.0.4.RELEASE.jar:3.0.4.RELEASE]
    at org.springframework.cloud.stream.binder.AbstractBinder.bindProducer(AbstractBinder.java:152) ~[spring-cloud-stream-3.0.4.RELEASE.jar:3.0.4.RELEASE]
    at org.springframework.cloud.stream.binding.BindingService.lambda$rescheduleProducerBinding$2(BindingService.java:319) ~[spring-cloud-stream-3.0.4.RELEASE.jar:3.0.4.RELEASE]
    at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) ~[spring-context-5.2.6.RELEASE.jar:5.2.6.RELEASE]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[na:1.8.0_261]
    at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266) ~[na:1.8.0_261]
    at java.util.concurrent.FutureTask.run(FutureTask.java) ~[na:1.8.0_261]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) ~[na:1.8.0_261]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) ~[na:1.8.0_261]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_261]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_261]
    at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_261]
Caused by: org.apache.kafka.common.KafkaException: Could not instantiate class io.confluent.kafka.serializers.KafkaAvroSerializer
    at org.apache.kafka.common.utils.Utils.newInstance(Utils.java:325) ~[kafka-clients-2.3.1.jar:na]
    at org.apache.kafka.common.config.AbstractConfig.getConfiguredInstance(AbstractConfig.java:370) ~[kafka-clients-2.3.1.jar:na]
    at org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:368) ~[kafka-clients-2.3.1.jar:na]
    ... 25 common frames omitted
Caused by: java.lang.reflect.InvocationTargetException: null
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_261]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_261]
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_261]
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_261]
    at org.apache.kafka.common.utils.Utils.newInstance(Utils.java:321) ~[kafka-clients-2.3.1.jar:na]
    ... 27 common frames omitted
Caused by: java.lang.NoClassDefFoundError: org/apache/avro/io/EncoderFactory
    at io.confluent.kafka.serializers.AbstractKafkaAvroSerializer.<init>(AbstractKafkaAvroSerializer.java:39) ~[kafka-avro-serializer-5.4.1.jar:na]
    at io.confluent.kafka.serializers.KafkaAvroSerializer.<init>(KafkaAvroSerializer.java:32) ~[kafka-avro-serializer-5.4.1.jar:na]
    ... 32 common frames omitted
渠道

    @Output(ChannelsExtractor.MY.CHANNEL)
    MessageChannel outbound();

格雷德尔先生

// in plugins
    id 'org.springframework.boot' version '2.2.7.RELEASE'
    id 'io.spring.dependency-management' version '1.0.9.RELEASE'

// in dependencies
    implementation "io.confluent:kafka-avro-serializer:5.4.1"
    implementation "io.confluent:kafka-schema-registry-client:5.4.1"
    implementation "io.confluent:common-config:5.4.1"
    implementation "io.confluent:common-utils:5.4.1.0"

// Possibly here?
    runtimeOnly 'io.pivotal.spring.cloud:spring-cloud-services-dependencies:2.1.2.RELEASE'
    runtimeOnly 'io.pivotal.spring.cloud:spring-cloud-services-starter-config-client:2.1.2.RELEASE'

看起来您正在使用不兼容的avro库。这就是
EncoderFactory
的来源。下面是一个示例应用程序,它显示了与avro+合流序列化程序的某种程度的交互:您可能需要根据您的用例调整该示例。它还使用了更高版本的Spring Boot。我希望您在application.properties或application.yml中有关于目标和源的必要配置?@chetank是否配置了目标?源是什么意思?Spring.cloud.stream.function.definition=supplier;接收和转发;接收spring.cloud.stream.kafka.binder.configuration.schema.registry.url=spring.cloud.stream.bindings.supplier-out-0.destination=sensor-1
// in plugins
    id 'org.springframework.boot' version '2.2.7.RELEASE'
    id 'io.spring.dependency-management' version '1.0.9.RELEASE'

// in dependencies
    implementation "io.confluent:kafka-avro-serializer:5.4.1"
    implementation "io.confluent:kafka-schema-registry-client:5.4.1"
    implementation "io.confluent:common-config:5.4.1"
    implementation "io.confluent:common-utils:5.4.1.0"

// Possibly here?
    runtimeOnly 'io.pivotal.spring.cloud:spring-cloud-services-dependencies:2.1.2.RELEASE'
    runtimeOnly 'io.pivotal.spring.cloud:spring-cloud-services-starter-config-client:2.1.2.RELEASE'