【发布时间】:2021-10-27 03:21:09
【问题描述】:
这些是 pom.xml 中的依赖项。 spring-cloud.version is 2020.0.3
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-function-context</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-sleuth-zipkin</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-binder-kafka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-binder-kafka-streams</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
<dependency>
<groupId>io.zipkin.brave</groupId>
<artifactId>brave-instrumentation-spring-web</artifactId>
<version>5.6.10</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-function-kotlin</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
...Rest omitted
应用程序无法启动
Description:
Parameter 0 of method kafkaStreamsFunctionProcessorInvoker in org.springframework.cloud.stream.binder.kafka.streams.function.KafkaStreamsFunctionAutoConfiguration required a bean named '&getRestTemplate_registration' that could not be found.
Action:
Consider defining a bean named '&getRestTemplate_registration' in your configuration.
这是奇怪的部分 - 我确实定义了一个 Bean
/**
* Functional bean which gets / builds the RestTemplate for the given request
* @return the rest template or null if no configuration exists
*/
@Bean
fun getRestTemplate(): (RestCallRequest) -> RestTemplate? {
return { restCallRequest -> getRestTemplateNameForUrl(restCallRequest.url)?.let(::getOrBuildRestTemplate) }
}
它正在自动装配,如下所示在另一个类中
@Autowired
private lateinit var getRestTemplate: (RestCallRequest) -> RestTemplate?
在 SpringBoot 2.3.7 中有效,但在更新后现在不可用。谁能给我一个提示如何解决这个问题。
为什么 Bean 的前缀是 &,后缀是 _registration?我没有在整个应用程序中使用该术语。
我绝望地按照建议定义了一个 Bean。结果是:
Consider defining a bean named '&getRestTemplate_registration_registration' in your configuration.
【问题讨论】:
-
您在项目中使用的是 spring-boot-starter-validation 吗?我在升级时遇到了这个问题,因为它没有包含在任何人的网络中,这使得所有项目都无法正确编译。与 Kotlin 相关的排除项似乎很可疑。
标签: spring-boot kotlin spring-cloud spring-cloud-function