首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ClassNotFoundException:使用来自spring-kafka- scala.collection.convert.AsJavaExtensions的@EmbeddedKafka时的测试

ClassNotFoundException:使用来自spring-kafka- scala.collection.convert.AsJavaExtensions的@EmbeddedKafka时的测试
EN

Stack Overflow用户
提问于 2021-09-14 14:30:04
回答 1查看 60关注 0票数 0

在尝试从spring-kafka-test使用@EmbeddedKafka时,我在运行测试时最终得到了ClassNotFoundException: scala.collection.convert.AsJavaExtensions (全栈跟踪here)。

我尝试过不同的Kafka版本(org.apache.kafka:kafka_2.11:2.4.1而不是org.apache.kafka:kafka_2.12:2.8.0)和不同版本的org.scala-lang:scala-library (2.13.62.12.102.11.122.10.6)。

我需要做些什么才能解决这个问题?

以下是重现该问题的最小示例:

src/main/kotlin/com/acme/Application.kt

代码语言:javascript
复制
package com.acme

import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication

@SpringBootApplication
class Application

fun main(args: Array<String>) {
    runApplication<Application>(*args)
}

src/test/kotlin/com/acme/integration/TestFullStack.kt

代码语言:javascript
复制
package com.acme.integration

import org.junit.jupiter.api.Test
import org.junit.jupiter.api.extension.ExtendWith
import org.springframework.boot.test.context.SpringBootTest
import org.springframework.kafka.test.context.EmbeddedKafka
import org.springframework.test.context.junit.jupiter.SpringExtension

@ExtendWith(SpringExtension::class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@EmbeddedKafka(topics = ["testtopic"], controlledShutdown = true)
class TestFullStack {
    @Test
    fun `test init`() {
    }
}

build.gradle.kts

代码语言:javascript
复制
plugins {
    id("org.springframework.boot") version "2.5.4"
    id("io.spring.dependency-management") version "1.0.11.RELEASE"
    kotlin("jvm") version "1.5.21"
    kotlin("plugin.spring") version "1.5.21"
}

group = "com.acme"
version = "1.0.0-SNAPSHOT"
java.sourceCompatibility = JavaVersion.VERSION_11

repositories {
    mavenCentral()
}

dependencies {
    implementation(group = "org.apache.kafka", name = "kafka_2.12", version = "2.8.0")
    implementation(group = "org.scala-lang", name = "scala-library", version = "2.12.10")
    implementation(group = "org.springframework.kafka", name = "spring-kafka", version = "2.7.6")
    implementation(group = "org.springframework.boot", name = "spring-boot-starter-web")
    implementation(group = "org.jetbrains.kotlin", name = "kotlin-reflect")

    testImplementation(group = "org.springframework.boot", name = "spring-boot-starter-test")
    testImplementation(group = "org.springframework.kafka", name = "spring-kafka-test", version = "2.7.6")
    testImplementation(group = "org.testcontainers", name = "kafka", version = "1.16.0")
    testImplementation(group = "org.jetbrains.kotlin", name = "kotlin-test-junit")
}

tasks {
    withType<Test> {
        testLogging.exceptionFormat = org.gradle.api.tasks.testing.logging.TestExceptionFormat.FULL
        useJUnitPlatform()
    }
}

settings.gradle.kts

代码语言:javascript
复制
rootProject.name = "acmetest"

Dockerfile

代码语言:javascript
复制
FROM openjdk:11-jdk-slim
WORKDIR /home/test
ADD . /home/test
RUN ./gradlew test
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-14 14:53:00

通过使用正确的依赖项使其正常工作。

代码语言:javascript
复制
dependencies {
    implementation(group = "org.springframework.boot", name = "spring-boot-starter-web")
    implementation(group = "org.apache.kafka", name = "kafka_2.13")
    implementation(group = "org.apache.kafka", name = "kafka-clients")

    testImplementation(group = "org.springframework.boot", name = "spring-boot-starter-test")
    testImplementation(group = "org.jetbrains.kotlin", name = "kotlin-test-junit")
    testImplementation(group = "org.springframework.kafka", name = "spring-kafka-test")
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69179668

复制
相关文章

相似问题

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