首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NoClassDefFoundError:使用spring-kafka-test 2.5.7进行scala/数学/排序

NoClassDefFoundError:使用spring-kafka-test 2.5.7进行scala/数学/排序
EN

Stack Overflow用户
提问于 2020-11-04 03:05:19
回答 1查看 3.4K关注 0票数 4

我有一个小的库,它提供了一个围绕EmbeddedKafkaBroker的JUnit 5扩展,它试图通过将测试之间的偏移量重置为最新而不是丢弃整个上下文来提高性能,而不仅仅是使用@DirtiesContext

我的build.gradle是:

代码语言:javascript
复制
import org.springframework.boot.gradle.plugin.SpringBootPlugin

plugins {
    id 'org.springframework.boot' version '2.3.5.RELEASE' apply false
    id 'io.spring.dependency-management' version '1.0.10.RELEASE'
}

dependencyManagement {
    imports {
        mavenBom SpringBootPlugin.BOM_COORDINATES
    }
}

sourceCompatibility = '1.8'

dependencies {
    implementation 'org.junit.jupiter:junit-jupiter-api'
    implementation 'org.springframework.kafka:spring-kafka'
    implementation 'org.springframework.kafka:spring-kafka-test'
    compileOnly 'org.springframework.integration:spring-integration-core'

    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    testRuntime 'org.springframework.integration:spring-integration-core'
    testRuntime 'org.junit.jupiter:junit-jupiter-engine'
}

这解决了在2.12中使用spring-kafka:2.5.7和各种Scala库的问题。当extension尝试启动EmbeddedKafkaBroker时,我得到以下异常:

代码语言:javascript
复制
java.lang.NoClassDefFoundError: scala/math/Ordering$$anon$7

    at kafka.api.ApiVersion$.orderingByVersion(ApiVersion.scala:45)
    at kafka.api.ApiVersion.compare(ApiVersion.scala:139)
    at kafka.api.ApiVersion.compare$(ApiVersion.scala:138)
    at kafka.api.KAFKA_2_5_IV0$.compare(ApiVersion.scala:339)
    at kafka.api.KAFKA_2_5_IV0$.compare(ApiVersion.scala:339)
    at scala.math.Ordered.$greater$eq(Ordered.scala:91)
    at scala.math.Ordered.$greater$eq$(Ordered.scala:91)
    at kafka.api.KAFKA_2_5_IV0$.$greater$eq(ApiVersion.scala:339)
    at kafka.server.KafkaConfig.<init>(KafkaConfig.scala:1561)
    at kafka.server.KafkaConfig.<init>(KafkaConfig.scala:1269)
    at org.springframework.kafka.test.EmbeddedKafkaBroker.afterPropertiesSet(EmbeddedKafkaBroker.java:313)

到目前为止,我所做的搜索只发现了覆盖特定kafka或scala版本的问题,而我没有这样做。你知道我遗漏了什么吗,或者如何修复它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-05 21:12:43

我这里也有同样的问题。我研究了spring-kafka 2.5.7.RELEASE,这是Spring Boot2.3.5使用的版本,并将相同的scala依赖添加到我的项目中,作为对我的build.gradle的变通方法:

代码语言:javascript
复制
dependencies {
    ...
    testImplementation("org.scala-lang:scala-library:2.12.11")
}

这暂时解决了我的问题。希望它能在明年春天得到修复--kafka版本。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64669007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档