You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by "maker_dong@foxmail.com" <ma...@foxmail.com> on 2021/06/03 08:18:04 UTC

scala2.12错误:Error: scala/Product$class

我使用maven构建了一个scala2.12的flink项目
我希望使用flink消费kafka,但项目运行时报错:

scalac: Error: scala/Product$class
java.lang.NoClassDefFoundError: scala/Product$class
at org.apache.flink.api.scala.codegen.TypeDescriptors$RecursiveDescriptor.<init>(TypeDescriptors.scala:155)
at org.apache.flink.api.scala.codegen.TypeAnalyzer$UDTAnalyzerInstance$UDTAnalyzerCache$$anonfun$getOrElseUpdate$2.apply(TypeAnalyzer.scala:479)
at org.apache.flink.api.scala.codegen.TypeAnalyzer$UDTAnalyzerInstance$UDTAnalyzerCache$$anonfun$getOrElseUpdate$2.apply(TypeAnalyzer.scala:478)
at scala.Option.getOrElse(Option.scala:138)
        ...

pom文件相关依赖:
<flink.version>1.12.3</flink.version>    
<scala.binary.version>2.12</scala.binary.version>
<scala.version>2.12.8</scala.
...
<dependency>
    <groupId>org.apache.flink</groupId>
    <artifactId>flink-scala_${scala.binary.version}</artifactId>
    <version>${flink.version}</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>org.apache.flink</groupId>
    <artifactId>flink-streaming-scala_${scala.binary.version}</artifactId>
    <version>${flink.version}</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>org.apache.flink</groupId>
    <artifactId>flink-clients_${scala.binary.version}</artifactId>
    <version>${flink.version}</version>
    <scope>provided</scope>
</dependency>

<!-- Scala Library, provided by Flink as well. -->
<dependency>
    <groupId>org.scala-lang</groupId>
    <artifactId>scala-library</artifactId>
    <version>${scala.version}</version>
    <scope>provided</scope>
</dependency>

<!-- Add connector dependencies here. They must be in the default scope (compile). -->

<!-- kafka -->
<dependency>
    <groupId>org.apache.flink</groupId>
    <artifactId>flink-connector-kafka_${scala.binary.version}</artifactId>
    <version>${flink.version}</version>
</dependency>
flink消费kafka代码:    ...    val env: StreamExecutionEnvironment = StreamExecutionEnvironment.getExecutionEnvironment
    val properties = new Properties()
    properties.setProperty("bootstrap.servers", "xxxxxx:9092")
    val kafkaConsumer = new FlinkKafkaConsumer[String]("xxx", new SimpleStringSchema(), properties)
    kafkaConsumer.setStartFromGroupOffsets()
    val kafkaDataStream: DataStream[String] = env.addSource(kafkaConsumer)    ...在网上搜索基本都是说依赖版本问题,但我检查了lib,与scala相关的都是2.12版本的。找不到问题在哪儿,请各位指教,谢谢!



maker_dong@foxmail.com