caused an exception during initialization: Invalid signature file digest for Manifest main attributes
这是由于我们的项目每个人都改,提交到Git上可能有些同事把不需要的信息提价了,导致我们的jar打入依赖jar的时候,找不到了,需要我们加入一些过滤依赖信息。
org.apache.flink.client.program.ProgramInvocationException: The program's entry point class 'flinkonkafka.FlinkOnKafka' caused an exception during initialization: Invalid signature file digest for Manifest main attributes
at org.apache.flink.client.program.PackagedProgram.loadMainClass(PackagedProgram.java:432)
at org.apache.flink.client.program.PackagedProgram.<init>(PackagedProgram.java:146)
at org.apache.flink.client.program.PackagedProgram.<init>(PackagedProgram.java:68)
at org.apache.flink.client.program.PackagedProgram$Builder.build(PackagedProgram.java:590)
at org.apache.flink.client.cli.CliFrontend.buildProgram(CliFrontend.java:705)
at org.apache.flink.client.cli.CliFrontend.run(CliFrontend.java:200)
at org.apache.flink.client.cli.CliFrontend.parseParameters(CliFrontend.java:895)
at org.apache.flink.client.cli.CliFrontend.lambda$main$10(CliFrontend.java:968)
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:1836)
at org.apache.flink.runtime.security.HadoopSecurityContext.runSecured(HadoopSecurityContext.java:41)
at org.apache.flink.client.cli.CliFrontend.main(CliFrontend.java:968)
Caused by: java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
at sun.security.util.SignatureFileVerifier.processImpl(SignatureFileVerifier.java:314)
at sun.security.util.SignatureFileVerifier.process(SignatureFileVerifier.java:268)
at java.util.jar.JarVerifier.processEntry(JarVerifier.java:316)
at java.util.jar.JarVerifier.update(JarVerifier.java:228)
at java.util.jar.JarFile.initializeVerifier(JarFile.java:383)
at java.util.jar.JarFile.getInputStream(JarFile.java:450)
at sun.misc.URLClassPath$JarLoader$2.getInputStream(URLClassPath.java:977)
at sun.misc.Resource.cachedInputStream(Resource.java:77)
at sun.misc.Resource.getByteBuffer(Resource.java:160)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:454)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at org.apache.flink.util.ChildFirstClassLoader.loadClass(ChildFirstClassLoader.java:66)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at org.apache.flink.client.program.PackagedProgram.loadMainClass(PackagedProgram.java:420)
... 12 more
需要在我们的pom里加入依赖处理
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<!-- 滤掉这些文件,避免影响-->
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>reference.conf</resource>
</transformer>
</transformers>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>