java.lang.ClassNotFoundException: org.apache.flink.connector.base.source.reader.RecordEmitter

环境

Flink 1.16.0

mysql-cdc 2.3.0

pom.xml 引用的依赖

    com.ververica
    flink-connector-mysql-cdc
    2.3.0

报错信息

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: org/apache/flink/connector/base/source/reader/RecordEmitter] with root cause
 java.lang.ClassNotFoundException: org.apache.flink.connector.base.source.reader.RecordEmitter
 	at java.base/java.net.URLClassLoader.findClass(Unknown Source) ~[na:na]
 	at java.base/java.lang.ClassLoader.loadClass(Unknown Source) ~[na:na]
 	at java.base/java.lang.ClassLoader.loadClass(Unknown Source) ~[na:na]
 	at com.ververica.cdc.connectors.mysql.table.MySqlTableSource.getScanRuntimeProvider(MySqlTableSource.java:177) ~[na:na]
 	at org.apache.flink.table.planner.connectors.DynamicSourceUtils.validateScanSource(DynamicSourceUtils.java:461) ~[flink-table-planner_2.12-1.15.0-stream1.jar:1.15.0-stream1]

解决方案

该问题是由于该jar包中打包的时候未引用该包,在依赖中引用并包含进来即可

修改 pom.xml 加入以下依赖

	
	     org.apache.flink
	     flink-connector-base
	     ${flink.version}
	

如果使用的 ververica platform 等 flink 计算平台,使用该连接器的时候需要重新下载源码,引入依赖并把该包包含进来,重新编译打包后传到计算平台

   
        
            org.apache.maven.plugins
            maven-shade-plugin
            3.2.4
            
                
                    shade-flink
                    package
                    
                        shade
                    
                    
                        false
                        
                            
                                org.apache.flink:flink-connector-base
                            
                        
                    
                
            
        
    

本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/424529c878.html