Amir Hossein Sharifzadeh
04/01/2023, 8:19 PMCaused by: java.lang.NoClassDefFoundError: org/apache/flink/streaming/api/functions/ProcessFunction
Any idea how to solve this issue? And yes, my pom.xml
contains all required dependencies:
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-java</artifactId>
<version>${flink.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-clients</artifactId>
<version>${flink.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-table-api-java-bridge</artifactId>
<version>${flink.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-table-planner-loader</artifactId>
<version>${flink.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-table-runtime</artifactId>
<version>${flink.version}</version>
<scope>compile</scope>
</dependency>
<!-- Adding jackson dependencies. They must be in the default scope (compile). -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.databind.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson.version}</version>
</dependency>
<!-- jackson needs jackson-datatype-jsr310 for Java 8 java.time.Instant support -->
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-connector-kafka</artifactId>
<version>${flink.version}</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-connector-base</artifactId>
<version>${flink.version}</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-json</artifactId>
<version>${flink.version}</version>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>${kafka.version}</version>
</dependency>
where
<properties>
<flink.version>1.17.0</flink.version>
<jackson.databind.version>2.14.0</jackson.databind.version>
<jackson.version>2.14.0</jackson.version>
<junit.jupiter.version>5.9.1</junit.jupiter.version>
<kafka.version>3.2.2</kafka.version>
<log4j.version>2.19.0</log4j.version>
<maven.compiler.source>${target.java.version}</maven.compiler.source>
<maven.compiler.target>${target.java.version}</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<target.java.version>11</target.java.version>
</properties>
David Christle
04/03/2023, 6:12 PMprovided
? https://nightlies.apache.org/flink/flink-docs-release-1.13/docs/dev/datastream/project-configuration/#setting-up-a-project-basic-dependencies
It’s generally recommended to use provided
instead of compile
scope for core Flink dependencies. Sometimes, ClassDefNotFoundError
can arise from two different versions of the same dependency on the class path. Changing to provided
might avoid that happening.