【问题标题】:Embedded Kafka in micronaut app not finding beans在 micronaut 应用程序中嵌入 Kafka 找不到 bean
【发布时间】:2019-05-10 00:47:37
【问题描述】:

我在此处描述的测试中使用嵌入式 Kafka 服务器:https://micronaut-projects.github.io/micronaut-kafka/latest/guide/#kafkaEmbedded。问题是我在运行测试时得到了这个io.micronaut.context.exceptions.BeanContextException: Error processing bean [Definition: org.app.messaging.TestConsumer] method definition [void receive(String msg)]: Failed to inject value for parameter [testService] of method [setTestService] of class: org.app.messaging.TestConsumer。任何想法如何解决这个问题?

这是测试的样子:

void "test run kafka embedded server"() {
    given:
    ApplicationContext applicationContext = ApplicationContext.run(
            Collections.singletonMap(
                    AbstractKafkaConfiguration.EMBEDDED, true
            )
    )

    when:
    AbstractKafkaConsumerConfiguration config = applicationContext.getBean(AbstractKafkaConsumerConfiguration)
    Properties props = config.getConfig()


    then:
    props[ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG] == 9091


    when:
    KafkaEmbedded kafkaEmbedded = applicationContext.getBean(KafkaEmbedded)

    then:
    kafkaEmbedded.kafkaServer.isPresent()
    kafkaEmbedded.zkPort.isPresent()

    cleanup:
    applicationContext.close()
}

【问题讨论】:

    标签: apache-kafka micronaut


    【解决方案1】:

    在根包以外的任何地方进行测试似乎会导致多个“找不到 bean 定义”问题。框架中没有ComponentScan 支持,所以唯一对我有用的是将测试文件移动到根包。这里有一些想法:https://github.com/micronaut-projects/micronaut-core/issues/511 如果您在使用 CLI 应用程序时遇到类似问题。但是,在使用嵌入式服务器和嵌入式 kafka 时,它不起作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-11
      相关资源
      最近更新 更多