首页 > 其他分享 >根据类查找缺少的jar包,在已有jar包内查找类

根据类查找缺少的jar包,在已有jar包内查找类

时间:2022-11-30 15:56:36浏览次数:43  
标签:java ObjectOutputStream 包内 flink jar 查找 io apache org

背景

提交Flink作业的时候报错:
NoClassDefFoundError:org.apache.kafka.connect.source.SourceRecord

java.lang.NoClassDefFoundError: org/apache/kafka/connect/source/SourceRecord
	at java.lang.Class.getDeclaredMethods0(Native Method)
	at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
	at java.lang.Class.getDeclaredMethod(Class.java:2128)
	at java.io.ObjectStreamClass.getPrivateMethod(ObjectStreamClass.java:1475)
	at java.io.ObjectStreamClass.access$1700(ObjectStreamClass.java:72)
	at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:498)
	at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:472)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:472)
	at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:369)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1134)
	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
	at org.apache.flink.util.InstantiationUtil.serializeObject(InstantiationUtil.java:624)
	at org.apache.flink.util.SerializedValue.<init>(SerializedValue.java:62)
	at org.apache.flink.streaming.api.graph.StreamingJobGraphGenerator.createJobVertex(StreamingJobGraphGenerator.java:597)
	at org.apache.flink.streaming.api.graph.StreamingJobGraphGenerator.createChain(StreamingJobGraphGenerator.java:457)
	at org.apache.flink.streaming.api.graph.StreamingJobGraphGenerator.setChaining(StreamingJobGraphGenerator.java:378)
	at org.apache.flink.streaming.api.graph.StreamingJobGraphGenerator.createJobGraph(StreamingJobGraphGenerator.java:179)
	at org.apache.flink.streaming.api.graph.StreamingJobGraphGenerator.createJobGraph(StreamingJobGraphGenerator.java:117)
	at org.apache.flink.streaming.api.graph.StreamGraph.getJobGraph(StreamGraph.java:934)
	at org.apache.flink.client.StreamGraphTranslator.translateToJobGraph(StreamGraphTranslator.java:50)
	at org.apache.flink.client.FlinkPipelineTranslationUtil.getJobGraph(FlinkPipelineTranslationUtil.java:39)
	at org.apache.flink.client.deployment.executors.PipelineExecutorUtils.getJobGraph(PipelineExecutorUtils.java:56)
	at org.apache.flink.client.deployment.executors.AbstractJobClusterExecutor.execute(AbstractJobClusterExecutor.java:70)
	at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.executeAsync(StreamExecutionEnvironment.java:1957)
	at org.apache.flink.client.program.StreamContextEnvironment.executeAsync(StreamContextEnvironment.java:137)
	at org.apache.flink.table.planner.delegation.ExecutorBase.executeAsync(ExecutorBase.java:55)
	at org.apache.flink.table.api.internal.TableEnvironmentImpl.executeInternal(TableEnvironmentImpl.java:759)
	at org.apache.flink.table.api.internal.TableEnvironmentImpl.executeInternal(TableEnvironmentImpl.java:742)
	at com.sohu.rtc.flinkplatform.sql.SqlJob.callInserts(SqlJob.java:256)
	at com.sohu.rtc.flinkplatform.sql.SqlJob.callInsert(SqlJob.java:232)
	at com.sohu.rtc.flinkplatform.sql.SqlJob.callOperation(SqlJob.java:190)
	at java.util.Optional.ifPresent(Optional.java:159)
	at com.slankka.rtc.flinkplatform.sql.SqlJob.executeStatement(SqlJob.java:220)
	at com.slankka.rtc.flinkplatform.sql.SqlJob.start(SqlJob.java:138)
	at com.slankka.rtc.flinkplatform.sql.SqlJobDriver.main(SqlJobDriver.java:14)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:355)
	at org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:222)
	at org.apache.flink.client.ClientUtils.executeProgram(ClientUtils.java:114)
	at org.apache.flink.client.cli.CliFrontend.executeProgram(CliFrontend.java:812)
	at org.apache.flink.client.cli.CliFrontend.run(CliFrontend.java:246)
	at org.apache.flink.client.cli.CliFrontend.parseAndRun(CliFrontend.java:1054)
	at org.apache.flink.client.cli.CliFrontend.lambda$main$10(CliFrontend.java:1132)
	at java.security.AccessController.doPrivileged(Native Method)
	at javax.security.auth.Subject.doAs(Subject.java:422)
	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1917)
	at org.apache.flink.runtime.security.contexts.HadoopSecurityContext.runSecured(HadoopSecurityContext.java:41)
	at org.apache.flink.client.cli.CliFrontend.main(CliFrontend.java:1132)
Caused by: java.lang.ClassNotFoundException: org.apache.kafka.connect.source.SourceRecord
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at org.apache.flink.util.FlinkUserCodeClassLoader.loadClassWithoutExceptionHandling(FlinkUserCodeClassLoader.java:64)
	at org.apache.flink.util.ChildFirstClassLoader.loadClassWithoutExceptionHandling(ChildFirstClassLoader.java:74)
	at org.apache.flink.util.FlinkUserCodeClassLoader.loadClass(FlinkUserCodeClassLoader.java:48)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 60 more

找出这个类在哪个jar包,哪个artifact

根据类查找jar包

方法

访问search.maven.org
看包名应该是 kafka的包,那么Kafka的包 groupId:org.apache.kafka

输入 c:SourceRecord g:org.apache.kafka即可定位

c:SourceRecord g: org.apache.kafka

这个包是connect-api。

于是下载 connect-api 即可解决。

在jar包内查找类

分析某一个class在哪个jar包内

for i in `ls`;do echo $i && jar -tf $i | grep SourceRecord.class; done

通过执行此命令,可以找到对应的jar包。

标签:java,ObjectOutputStream,包内,flink,jar,查找,io,apache,org
From: https://www.cnblogs.com/slankka/p/16938678.html

相关文章

  • kx-000014-顺序表-查找元素是否存在表中
    顺序表结构体定义。具体的结构体定义请查看头文件:https://www.cnblogs.com/kxwslmsps/p/16937235.htmltypedefstatusint;//<定义函数结果状态typedefintety......
  • bat脚本查找指定目录下的文件并将所有文件内容合并输出到一个文件里 写软著专用提取代
    1.将下面的代码复制到 并另存为【查找文件并合并内容.bat】里echooff&color0A::判断输入路径是不是文件夹,如果是,则获取文件夹下的所有文件名(包括子文件夹下的):......
  • 给定N(N<=100)个正整数,查找其中的最大值并输出。
    #include<stdio.h>#defineN100main(){ inta[N],n,i,max; printf("请输入N个数(N<=100):\n"); scanf("%d",&n);//输入的个数  for(i=0;i<n;i++) scanf("%d",&a[i......
  • C#数据结构-七大查找算法
    阅读目录1.顺序查找2.二分查找3.插值查找4.斐波那契查找5.分块查找6.树表查找7.哈希查找下面所有的代码,都已经经过vs测试。1.顺序查找基本思想:顺序查找也称为......
  • 10.查找算法
    在java中,我们常用四种查找算法:  1.顺序查找(线性)  2.二分法/折半查找  3.插值查找  4.斐波那契查找1.线性查找. 2.二分查找算法二分查找:对一个进行二......
  • find 查找某个目录,但是不包括这个目录本身?
    问题描述: 想要查找某个目录下的内容,但是发现: [root@nctest-snap-test-02mysql]#find/data/backup/mysql//data/backup/mysql/#包含目录本身/data/backup/......
  • Maven配置ojdbc14-10.2.0.4.0.jar
    对于oralce的jdbc驱动,在maven上搜索到把pom配置复制到pom.xml里进行引用的时候出现下面这种情况<dependency><groupId>com.oracle</groupId><artifactId>ojdb......
  • IDEA中打jar包的方法
    使用Maven打jar包1.当你的Project中使用了Maven时,可以直接在Lifecycle中执行打包,第一步编译别忘记,之前我jar包老是运行报错就是因为没有compile就直接package了。  ......
  • manjaro下为octave安装control软件包
    最近在看《算法之美》,里面配套的代码是octave的,安装好了软件后,运行代码,发现提示没有发现packagecontrol一、打开图形化的octave软件,通过帮助菜单--octave软件包,自动......
  • Maven导入Spring5.2.6.RELEASE所有jar包
    <properties><spring.version>5.2.6.RELEASE</spring.version></properties><dependencies><!--springstart--><!--springcorestart--><depe......