首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Spring Kafka找不到Kafka属性Bean

Spring Kafka找不到Kafka属性Bean
EN

Stack Overflow用户
提问于 2020-10-22 20:04:53
回答 2查看 993关注 0票数 1

我正在尝试在我的项目中使用Spring Kafka,其中spring boot版本是2.2.2.RELEASE,kafka版本是2.3.x。

代码语言:javascript
运行
复制
    implementation 'org.springframework.kafka:spring-kafka'

我已经设置了KafkaConfig类和侦听器类:

代码语言:javascript
运行
复制
@EnableKafka
@Configuration
public class KafkaConfig {
Config cfg = new Config();


@Bean
public ConsumerFactory<String, String> consumerFactory() {
Map<String, Object> props = new HashMap<>();
props.put(
    ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG,
    cfg.getProperty("server"));
props.put(
    ConsumerConfig.GROUP_ID_CONFIG,
    UUID.randomUUID());
props.put(
    ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG,
    StringDeserializer.class);
props.put(
    ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG,
    StringDeserializer.class);
return new DefaultKafkaConsumerFactory<>(props);
}

@Bean
public ConcurrentKafkaListenerContainerFactory<String, String> kafkaListenerContainerFactory() {
ConcurrentKafkaListenerContainerFactory<String, String> factory = new ConcurrentKafkaListenerContainerFactory();
factory.setConsumerFactory(consumerFactory());
return factory;
}
}

KafkaConsumer.java

代码语言:javascript
运行
复制
@Service
public class KafkaConsumer {
private final Logger LOG = LoggerFactory
  .getLogger(KafkaConsumer.class);

@KafkaListener(topics = "anomaly-topic")
void listener(String message) {
LOG.info("Listener [{}]", message);
}
}

当我尝试运行我的应用程序时,我得到以下异常:

代码语言:javascript
运行
复制
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.boot.autoconfigure.kafka.KafkaAnnotationDrivenConfiguration': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'spring.kafka-org.springframework.boot.autoconfigure.kafka.KafkaProperties': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.boot.autoconfigure.kafka.KafkaProperties]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/apache/kafka/common/requests/IsolationLevel
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:798) ~[spring-beans-5.2.2.RELEASE.jar:5.2.2.RELEASE]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-22 20:09:04

我发现解决这个问题的方法是禁用KafkaAutoConfiguration.class,

代码语言:javascript
运行
复制
@SpringBootApplication(exclude = KafkaAutoConfiguration.class)
票数 1
EN

Stack Overflow用户

发布于 2021-06-28 21:29:38

我也遇到过同样的情况,原因是我有下面的库:

代码语言:javascript
运行
复制
implementation(group="io.confluent", name="kafka-avro-serializer", version="5.5.1")

它带有自己的5.5.1-ccs版本的kafka-clients,该版本正在被采用,并导致兼容性问题。

我使用Spring Dependency Management解决了这个问题

代码语言:javascript
运行
复制
plugins {
    id("org.springframework.boot") version "2.2.2.RELEASE"
    id("io.spring.dependency-management") version "1.0.9.RELEASE"
}

然后运行gradle clean

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

https://stackoverflow.com/questions/64481838

复制
相关文章

相似问题

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