簡體   English   中英

EmbeddedKafkaBroker設置屬性引發NoClassDefFoundError:kafka / zk / EmbeddedZookeeper

[英]EmbeddedKafkaBroker set properties throws NoClassDefFoundError: kafka/zk/EmbeddedZookeeper

當我們使用以下命令初始化EmbeddedKafkaBroker時:

EmbeddedKafkaBroker embeddedKafkaBroker = new EmbeddedKafkaBroker(1, true, 1, environment.getProperty("producer_topic"), environment.getProperty("consumer_topic"));
embeddedKafkaBroker.afterPropertiesSet();

第二行拋出:

method 'embeddedKafkaBroker' threw exception; nested exception is java.lang.NoClassDefFoundError: kafka/zk/EmbeddedZookeeper

編輯-添加了依賴項的GAV格式我們已經看到許多有關依賴項不匹配的答案,因此我們檢查了它們。 我們不能放置所有使用的pom,因此這里是相關的依賴項:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-test</artifactId>
  <version>1.5.6.RELEASE</version>
  <exclusions>
    <exclusion>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot</artifactId>
    </exclusion>
  </exclusions>
</dependency>

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-core</artifactId>
  <version>5.1.3.RELEASE</version>
  <scope>compile</scope>
</dependency>

<dependency>
  <groupId>org.springframework.kafka</groupId>
  <artifactId>spring-kafka-test</artifactId>
  <version>2.2.6.RELEASE</version>
</dependency>

<dependency>
  <groupId>org.springframework.kafka</groupId>
  <artifactId>spring-kafka</artifactId>
  <version>2.2.0.RELEASE</version>
</dependency>

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

<dependency>
  <groupId>org.apache.kafka</groupId>
  <artifactId>kafka_2.11</artifactId>
  <version>2.2.0</version>
  <exclusions>
    <exclusion>
      <artifactId>kafka-clients</artifactId>
      <groupId>org.apache.kafka</groupId>
    </exclusion>
  </exclusions>
</dependency>

<dependency>
  <groupId>org.apache.kafka</groupId>
  <artifactId>kafka-streams</artifactId>
  <version>2.0.1</version>
</dependency>

有任何想法嗎?

您以某種方式缺少kafka_2.11-2.2.0-test.jar; 它通常是通過春季卡夫卡測試傳遞的。

<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka_2.12</artifactId>
    <version>2.2.0</version>
    <classifier>test</classifier>
    <scope>test</scope>
</dependency>

順便說一句,建議在2.x客戶端上使用scala 2_12。

另外,您的kafka-streams jar必須與kafka-clients相同版本。

有關如何覆蓋依賴項的信息,請參閱Spring for Apache Kafka參考手冊附錄

<dependency>
    <groupId>org.springframework.kafka</groupId>
    <artifactId>spring-kafka</artifactId>
    <version>${spring.kafka.version}</version>
</dependency>

<dependency>
    <groupId>org.springframework.kafka</groupId>
    <artifactId>spring-kafka-test</artifactId>
    <version>${spring.kafka.version}</version>
    <exclusions>
        <exclusion>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka_2.11</artifactId>
        </exclusion>
    </exclusions>
    <scope>test</scope>
</dependency>

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

<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka-clients</artifactId>
    <version>2.2.0</version>
    <classifier>test</classifier>
</dependency>

<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka_2.12</artifactId>
    <version>2.2.0</version>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka_2.12</artifactId>
    <version>2.2.0</version>
    <classifier>test</classifier>
    <scope>test</scope>
</dependency>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM