首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >spring-cloud-stream示例项目提升KafkaStreamsFunctionProcessor的NoSuchBeanDefinitionException

spring-cloud-stream示例项目提升KafkaStreamsFunctionProcessor的NoSuchBeanDefinitionException
EN

Stack Overflow用户
提问于 2021-04-12 22:45:27
回答 2查看 132关注 0票数 0

我正在尝试使用spring-cloud-stream,并创建official blog的示例项目。

实现与本文完全相同。

代码语言:javascript
复制
@SpringBootApplication
public class SimpleConsumerApplication {

   @Bean
   public java.util.function.Consumer<KStream<String, String>> process() {

       return input ->
               input.foreach((key, value) -> {
                   System.out.println("Key: " + key + " Value: " + value);
               });
   }
}

我在Spring initializr上选择了Cloud StreamSpring for Apache Kafka Stream,并添加了ShadowJar。现在我的build.gradle是这样的。

代码语言:javascript
复制
plugins {
    id 'org.springframework.boot' version '2.4.4'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'java'
    id 'com.github.johnrengelman.shadow' version '6.1.0'
}

group = 'com.lipsum'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

jar {
    manifest {
        attributes('Main-Class': 'com.lipsum.kafkastream.KafkastreamApplication')
    }
}

shadowJar {
    archiveBaseName.set('kafka-stream-practice')
    archiveClassifier.set('')
    archiveVersion.set('')
}

repositories {
    mavenCentral()
}

ext {
    set('springCloudVersion', "2020.0.2")
}

dependencies {
    implementation 'org.apache.kafka:kafka-streams'
    implementation 'org.springframework.cloud:spring-cloud-stream'
    implementation 'org.springframework.cloud:spring-cloud-stream-binder-kafka-streams'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

dependencyManagement {
    imports {
        mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
    }
}

test {
    useJUnitPlatform()
}

我执行了uber jar,但springboot应用程序无法识别该bean。

代码语言:javascript
复制
$ java -jar kafka-stream-practice.jar --spring.cloud.stream.bindings.process-in-0.destination=kafka-stream-practice
...
22:47:21.162 [main] ERROR org.springframework.boot.SpringApplication - Application run failed
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'kafkaStreamsFunctionProcessorInvoker' defined in class path resource [org/springframework/cloud/stream/binder/kafka/streams/function/KafkaStreamsFunctionAutoConfiguration.class]: Unsatisfied dependency expressed through method 'kafkaStreamsFunctionProcessorInvoker' parameter 1; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.cloud.stream.binder.kafka.streams.KafkaStreamsFunctionProcessor' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.cloud.stream.binder.kafka.streams.KafkaStreamsFunctionProcessor' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}

我不认为这个实现有任何问题。我是否遗漏了一些依赖项?

EN

回答 2

Stack Overflow用户

发布于 2021-04-13 01:33:48

我在initialize中尝试了一个快速的maven项目,它启动得很好。上一个版本(3.0.11)上有一个已知的错误,该错误已在快照上修复。您可以通过将引导执行器依赖项添加到项目或将绑定器升级到最新快照来修复此问题。你能试试maven方法吗?如果问题仍然存在,请分享一个可重现的样本,然后我们将进行查看。

票数 0
EN

Stack Overflow用户

发布于 2021-04-13 12:35:23

它在移除shadowJar之后工作,而不是使用Spring Boot Gradle插件的bootJar任务。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67060514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档