【问题标题】:NoClassDefFoundError: scala/collection/convert/AsJavaExtensionsNoClassDefFoundError: scala/collection/convert/AsJavaExtensions
【发布时间】:2021-11-09 07:52:21
【问题描述】:

我在 Java 测试中创建 EmbeddedKafkaCluster,但出现以下异常,但我添加了具有 scala 依赖关系的 kafka_2.12 依赖关系。

Java 版本:11

添加了以下依赖项

<!--Kafka Embedded Cluster dependencies -->
<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka_2.12</artifactId>
    <version>${kafka.version}</version>
    <classifier>test</classifier>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka_2.12</artifactId>
    <version>${kafka.version}</version>
    <scope>test</scope>
</dependency>

例外:

java.lang.NoClassDefFoundError: scala/collection/convert/AsJavaExtensions

    at java.base/java.lang.Class.forName0(Native Method)
    at java.base/java.lang.Class.forName(Class.java:315)
    at kafka.utils.Log4jControllerRegistration$.<clinit>(Logging.scala:28)
    at kafka.zk.EmbeddedZookeeper.<init>(EmbeddedZookeeper.scala:37)
    at org.apache.kafka.streams.integration.utils.EmbeddedKafkaCluster.start(EmbeddedKafkaCluster.java:89)
    at org.apache.kafka.streams.integration.utils.EmbeddedKafkaCluster.before(EmbeddedKafkaCluster.java:167)
    at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:50)
    at org.junit.rules.RunRules.evaluate(RunRules.java:20)
    at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190)
    at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
    at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
    at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)
    at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
Caused by: java.lang.ClassNotFoundException: scala.collection.convert.AsJavaExtensions
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    ... 16 more

【问题讨论】:

  • 通常,ClassNotFoundException 或 NoClassDefFoundError 意味着在编译时可用的类在运行时不可用。检查您的发行版和运行时环境(那里有缺少类的 scala 库)。

标签: java scala apache-kafka embedded-kafka


【解决方案1】:

升级到 kafka_2.13 解决了这个问题。

<!--Kafka Embedded Cluster dependencies -->
<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka_2.13</artifactId>
    <version>${kafka.version}</version>
    <classifier>test</classifier>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka_2.13</artifactId>
    <version>${kafka.version}</version>
    <scope>test</scope>
</dependency>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-18
    • 2012-09-24
    • 2017-11-07
    • 2017-12-20
    • 2017-03-06
    • 2020-12-28
    • 2010-10-15
    • 2020-08-23
    相关资源
    最近更新 更多