java - Spring Kafka 找不到 Kafka Properties Bean

标签 java spring-boot apache-kafka spring-kafka

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

    implementation 'org.springframework.kafka:spring-kafka'

我有我的 KafkaConfig 类和 Listener 类设置:

@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

@Service
public class KafkaConsumer {
private final Logger LOG = LoggerFactory
  .getLogger(KafkaConsumer.class);

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

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

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]

最佳答案

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

@SpringBootApplication(exclude = KafkaAutoConfiguration.class)

关于java - Spring Kafka 找不到 Kafka Properties Bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64481838/

相关文章:

java - 有没有办法在 get() set() 模型中不使用 get() 来拥有只读功能?

java - ClassLoader.getResources 在 Weblogic/Spring 应用程序上返回一个空枚举

spring - 为什么 spring-boot 不监听 logging.path 变量?

apache-spark - 结构化流 : watermark vs. 恰好一次语义

apache-spark - 在同一集群中同时进行 Spark 流和 Spark 批处理作业的最佳实践

java - 如何在Android中渲染YV12视频帧

java - 从多个输入字符串生成确定性唯一固定长度文件名字符串

spring-boot - XMPP Spring 集成 - 聊天

java - 未能获得 JDK 11、Spring Boot(包括)的组合。持久性和 JavaFX 工作

java - 如何在 apache kafka 中删除主题