Scala KafkameBedded抛出NoSuchMethodError:org.apache.kafka.common.config.ConfigDef$ValidString

Scala KafkameBedded抛出NoSuchMethodError:org.apache.kafka.common.config.ConfigDef$ValidString,scala,apache-kafka,embedded-kafka,Scala,Apache Kafka,Embedded 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。(Lja

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

异常或错误导致运行中止: 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 在 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>`
`
net.manub
scalatest-embedded-kafka_2.11
0.10.0
测试
org.apache.spark
spark-streaming-kafka-0-10-assembly_2.11
2.2.0
org.apache.kafka
卡夫卡2.11
2.1.0
测试
测试
`

您缺少客户端

    <dependency>
        <groupId>org.apache.kafka</groupId>
        <artifactId>kafka-clients</artifactId>
        <version>2.1.0</version>
    </dependency>

org.apache.kafka
卡夫卡客户
2.1.0
请参阅or以获取scalatest嵌入式卡夫卡0.10.0。两者都使用kafkaVersion=“0.10.1.0”


您可以在链接的文件中看到,
kafka_2.11
依赖项不在范围内,因此您可能根本不需要包含
kafka_2.11
依赖项。如果出于某种原因包含它,那么通常需要确保传递依赖项中所需的类签名都存在。
README
文件(使用上面build.sbt链接的相同repo)确认您可能不需要卡夫卡依赖项。您的构建工具应该自动引入任何可传递的依赖项。我会尝试将其删除,如果无法修复,则会更改版本。

其spark job功能测试。基本上是从s3读取数据并传递给卡夫卡。所以在功能测试中,我尝试启动嵌入式卡夫卡,用于测试目的。启动卡夫卡时测试失败。`implicit val config:embeddedKafkanconfig=embeddedKafkanconfig(kafkaPort=9092,zooKeeperPort=2182)val-topic:String=“test-topic”var-appExecutorThread:ExecutorService=uu在{SparkSession.clearActiveSession()EmbeddedKafka.stop()之前(EmbeddedKafka.isRunning)Thread.sleep(100)EmbeddedKafka.start()(配置)EmbeddedKafka.createCustomTopic(主题)(配置)而(!EmbeddedKafka.isRunning)Thread.sleep(100)appExecutorThread=Executors.newSingleThreadExecutor()}``