0

我正在尝试使用嵌入式 kafka 编写功能测试。但在启动集群时出现以下错误:

异常或错误导致运行中止:org.apache.kafka.common.config.ConfigDef$ValidString.(Ljava/util/List;Lorg/apache/kafka/common/config/ConfigDef$1;)V java.lang。 NoSuchMethodError:org.apache.kafka.common.config.ConfigDef$ValidString.(Ljava/util/List;Lorg/apache/kafka/common/config/ConfigDef$1;)V at org.apache.kafka.common.config.ConfigDef $ValidList.(ConfigDef.java:895)`

我的 Pom.xml 有这个依赖

    `
        <dependency>
        <groupId>net.manub</groupId>
        <artifactId>scalatest-embedded-kafka_2.11</artifactId>
        <version>0.10.0</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-streaming-kafka-0-10-assembly_2.11</artifactId>
        <version>2.2.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.kafka</groupId>
        <artifactId>kafka_2.11</artifactId>
        <version>2.1.0</version>
        <classifier>test</classifier>
        <scope>test</scope>
    </dependency>`
4

2 回答 2

0

请参阅 scalatest-embedded-kafka 0.10.0 的build.sbtpom.xml。两者都使用 kafkaVersion = "0.10.1.0"。

您可以在链接的文件中看到,该kafka_2.11依赖项与 scope provided无关,因此您可能根本不需要包含该kafka_2.11依赖项。如果出于某种原因确实包含它,您通常希望确保传递依赖项中所需的类签名都存在。该README文件(使用上面的 build.sbt 链接的相同存储库)确认您可能不需要 kafka 依赖项。你的构建工具应该自动引入任何传递依赖。我会尝试删除它,或者如果不能修复它,我会更改版本。

于 2020-02-07T07:04:37.157 回答
0

你错过了客户

    <dependency>
        <groupId>org.apache.kafka</groupId>
        <artifactId>kafka-clients</artifactId>
        <version>2.1.0</version>
    </dependency>
于 2020-02-05T00:21:03.633 回答