我设法为我的 springboot fat jar 构建了 native-image,但是java.lang.NoSuchMethodException: com.my.passgenerator.PassGeneratorApplication.<init>()
当我运行它时它会抛出异常:“”。我试图添加一个默认构造和一个空的 init() 方法,但都失败了。如何克服此异常并运行此本机映像?
以下是完整的日志:
[root@hostserver pass-generator]# mvn -Pstg clean package -Dmaven.test.skip=true [INFO] 正在扫描项目... [警告] [警告] 在为 com.sensetime.intersense:pass-generator:jar:0.0.1-stg-SNAPSHOT 构建有效模型时遇到了一些问题 [警告] 'version' 包含一个表达式,但应该是一个常量。@ com.sensetime.intersense:pass-generator:0.0.1-${target.env}-SNAPSHOT,/tmp/pass-generator/pom.xml,第 47 行,第 11 列 [警告] [警告] 强烈建议修复这些问题,因为它们会威胁您构建的稳定性。 [警告] [警告] 出于这个原因,未来的 Maven 版本可能不再支持构建此类格式错误的项目。 [警告] [信息] [信息] --------------------------------------------- ------------------------- [INFO] 构建 pass-generator 0.0.1-stg-SNAPSHOT [信息] --------------------------------------------- ------------------------- [信息] [信息] --- maven-clean-plugin:3.1.0:clean (default-clean) @ pass-generator --- [信息] 删除 /tmp/pass-generator/target [信息] [INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ pass-generator --- [INFO] 使用 'UTF-8' 编码复制过滤的资源。 [INFO] 复制 1 个资源 [INFO] 复制 1 个资源 [信息] [INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ pass-generator --- [INFO] 检测到更改 - 重新编译模块! [INFO] 编译 10 个源文件到 /tmp/pass-generator/target/classes [信息] [INFO] --- maven-antrun-plugin:1.8:run (默认)@ pass-generator --- [INFO] 执行任务 主要的: [copy] 将 3 个文件复制到 /tmp/pass-generator/target/classes/refs [copy] 将5个空目录复制到/tmp/pass-generator/target/classes/refs下1个空目录 [复制] 复制 1 个文件到 /tmp/pass-generator/target/classes [复制] 警告:找不到要复制的文件 /tmp/pass-generator/target/classes/application-stg.yml。 [复制] 警告:找不到要复制的文件 /tmp/pass-generator/target/classes/bootstrap-stg.yml。 [复制] 警告:找不到要复制的文件 /tmp/pass-generator/target/classes/application-stg.yaml。 [复制] 警告:找不到要复制的文件 /tmp/pass-generator/target/classes/config-stg.properties。 [INFO] 执行的任务 [信息] [信息] --- maven-resources-plugin:3.1.0:testResources (default-testResources) @ pass-generator --- [INFO] 不复制测试资源 [信息] [信息] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ pass-generator --- [INFO] 不编译测试源 [信息] [信息] --- maven-surefire-plugin:2.22.2:test (default-test) @ pass-generator --- [INFO] 测试被跳过。 [信息] [INFO] --- maven-jar-plugin:3.2.0:jar (default-jar) @ pass-generator --- [信息] 构建 jar:/tmp/pass-generator/target/pass-generator-0.0.1-stg-SNAPSHOT.jar [信息] [INFO] --- native-image-maven-plugin:20.1.0:native-image (默认)@ pass-generator --- [INFO] ImageClasspath 入口:org.springframework.boot:spring-boot-starter:jar:2.3.0.RELEASE:compile (file:///root/.m2/repository/org/springframework/boot/spring-boot-启动器/2.3.0.RELEASE/spring-boot-starter-2.3.0.RELEASE.jar) [INFO] ImageClasspath 入口:org.springframework.boot:spring-boot:jar:2.3.0.RELEASE:compile (file:///root/.m2/repository/org/springframework/boot/spring-boot/2.3. 0.RELEASE/spring-boot-2.3.0.RELEASE.jar) [INFO] ImageClasspath 入口:org.springframework:spring-context:jar:5.2.6.RELEASE:compile (file:///root/.m2/repository/org/springframework/spring-context/5.2.6.RELEASE/ spring-context-5.2.6.RELEASE.jar) [INFO] ImageClasspath 入口:org.springframework:spring-aop:jar:5.2.6.RELEASE:compile (file:///root/.m2/repository/org/springframework/spring-aop/5.2.6.RELEASE/ spring-aop-5.2.6.RELEASE.jar) [INFO] ImageClasspath 入口:org.springframework:spring-beans:jar:5.2.6.RELEASE:compile (file:///root/.m2/repository/org/springframework/spring-beans/5.2.6.RELEASE/ spring-beans-5.2.6.RELEASE.jar) [INFO] ImageClasspath 入口:org.springframework:spring-expression:jar:5.2.6.RELEASE:compile (file:///root/.m2/repository/org/springframework/spring-expression/5.2.6.RELEASE/ spring-expression-5.2.6.RELEASE.jar) [INFO] ImageClasspath 入口:org.springframework.boot:spring-boot-autoconfigure:jar:2.3.0.RELEASE:compile (file:///root/.m2/repository/org/springframework/boot/spring-boot-自动配置/2.3.0.RELEASE/spring-boot-autoconfigure-2.3.0.RELEASE.jar) [INFO] ImageClasspath 条目:jakarta.annotation:jakarta.annotation-api:jar:1.3.5:compile (file:///root/.m2/repository/jakarta/annotation/jakarta.annotation-api/1.3.5/ jakarta.annotation-api-1.3.5.jar) [INFO] ImageClasspath 入口:org.springframework:spring-core:jar:5.2.6.RELEASE:compile (file:///root/.m2/repository/org/springframework/spring-core/5.2.6.RELEASE/ spring-core-5.2.6.RELEASE.jar) [INFO] ImageClasspath 入口:org.springframework:spring-jcl:jar:5.2.6.RELEASE:compile (file:///root/.m2/repository/org/springframework/spring-jcl/5.2.6.RELEASE/ spring-jcl-5.2.6.RELEASE.jar) [INFO] ImageClasspath 条目:org.yaml:snakeyaml:jar:1.26:compile (file:///root/.m2/repository/org/yaml/snakeyaml/1.26/snakeyaml-1.26.jar) [INFO] ImageClasspath 条目:org.projectlombok:lombok:jar:1.18.0:compile (file:///root/.m2/repository/org/projectlombok/lombok/1.18.0/lombok-1.18.0.jar) [INFO] ImageClasspath 入口:org.springframework.boot:spring-boot-configuration-processor:jar:2.3.0.RELEASE:compile (file:///root/.m2/repository/org/springframework/boot/spring- boot-configuration-processor/2.3.0.RELEASE/spring-boot-configuration-processor-2.3.0.RELEASE.jar) [INFO] ImageClasspath 条目:org.apache.commons:commons-lang3:jar:3.7:compile (file:///root/.m2/repository/org/apache/commons/commons-lang3/3.7/commons-lang3- 3.7.jar) [INFO] ImageClasspath 入口:org.springframework.boot:spring-boot-starter-logging:jar:2.3.0.RELEASE:compile (file:///root/.m2/repository/org/springframework/boot/spring- boot-starter-logging/2.3.0.RELEASE/spring-boot-starter-logging-2.3.0.RELEASE.jar) [INFO] ImageClasspath 条目:ch.qos.logback:logback-classic:jar:1.2.3:compile (file:///root/.m2/repository/ch/qos/logback/logback-classic/1.2.3/ logback-classic-1.2.3.jar) [INFO] ImageClasspath 条目:ch.qos.logback:logback-core:jar:1.2.3:compile (file:///root/.m2/repository/ch/qos/logback/logback-core/1.2.3/ logback-core-1.2.3.jar) [INFO] ImageClasspath 条目:org.slf4j:slf4j-api:jar:1.7.30:compile (file:///root/.m2/repository/org/slf4j/slf4j-api/1.7.30/slf4j-api- 1.7.30.jar) [INFO] ImageClasspath 条目:org.apache.logging.log4j:log4j-to-slf4j:jar:2.13.2:compile (file:///root/.m2/repository/org/apache/logging/log4j/log4j- to-slf4j/2.13.2/log4j-to-slf4j-2.13.2.jar) [INFO] ImageClasspath 条目:org.apache.logging.log4j:log4j-api:jar:2.13.2:compile (file:///root/.m2/repository/org/apache/logging/log4j/log4j-api/ 2.13.2/log4j-api-2.13.2.jar) [INFO] ImageClasspath 条目:org.slf4j:jul-to-slf4j:jar:1.7.30:compile (file:///root/.m2/repository/org/slf4j/jul-to-slf4j/1.7.30/七月到 slf4j-1.7.30.jar) [INFO] ImageClasspath 条目:org.jasypt:jasypt:jar:1.9.2:compile (file:///root/.m2/repository/org/jasypt/jasypt/1.9.2/jasypt-1.9.2.jar) [INFO] ImageClasspath 条目:com.github.ulisesbocchio:jasypt-spring-boot:jar:2.0.0:compile (file:///root/.m2/repository/com/github/ulisesbocchio/jasypt-spring-boot/ 2.0.0/jasypt-spring-boot-2.0.0.jar) [INFO] ImageClasspath 入口:org.springframework.experimental:spring-graalvm-native:jar:0.7.0:compile (file:///root/.m2/repository/org/springframework/experimental/spring-graalvm-native/ 0.7.0/spring-graalvm-native-0.7.0.jar) [警告] jar:file:///root/.m2/repository/org/springframework/experimental/spring-graalvm-native/0.7.0/spring-graalvm-native-0.7.0.jar!/META-INF/ native-image/org.springframework.experimental/spring-graal-native/native-image.properties 与推荐的 META-INF/native-image/${groupId}/${artifactId}/native-image.properties 布局不匹配。 [INFO] ImageClasspath 条目:com.sensetime.intersense:pass-generator:jar:0.0.1-stg-SNAPSHOT (file:///tmp/pass-generator/target/pass-generator-0.0.1-stg-SNAPSHOT 。罐) [信息] 执行:/root/graalvm-ce-java8-20.1.0/jre/bin/native-image -cp /root/.m2/repository/org/springframework/boot/spring-boot-starter/2.3.0 .RELEASE/spring-boot-starter-2.3.0.RELEASE.jar:/root/.m2/repository/org/springframework/boot/spring-boot/2.3.0.RELEASE/spring-boot-2.3.0.RELEASE .jar:/root/.m2/repository/org/springframework/spring-context/5.2.6.RELEASE/spring-context-5.2.6.RELEASE.jar:/root/.m2/repository/org/springframework/spring -aop/5.2.6.RELEASE/spring-aop-5.2.6.RELEASE.jar:/root/.m2/repository/org/springframework/spring-beans/5.2.6.RELEASE/spring-beans-5.2.6 .RELEASE.jar:/root/.m2/repository/org/springframework/spring-expression/5.2.6.RELEASE/spring-expression-5.2.6.RELEASE.jar:/root/.m2/repository/org/springframework /boot/spring-boot-autoconfigure/2.3.0.RELEASE/spring-boot-autoconfigure-2.3.0.RELEASE.jar:/root/。m2/repository/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar:/root/.m2/repository/org/springframework/spring-core/5.2.6。 RELEASE/spring-core-5.2.6.RELEASE.jar:/root/.m2/repository/org/springframework/spring-jcl/5.2.6.RELEASE/spring-jcl-5.2.6.RELEASE.jar:/root /.m2/repository/org/yaml/snakeyaml/1.26/snakeyaml-1.26.jar:/root/.m2/repository/org/projectlombok/lombok/1.18.0/lombok-1.18.0.jar:/root/。 m2/repository/org/springframework/boot/spring-boot-configuration-processor/2.3.0.RELEASE/spring-boot-configuration-processor-2.3.0.RELEASE.jar:/root/.m2/repository/org/ apache/commons/commons-lang3/3.7/commons-lang3-3.7.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-logging/2.3.0.RELEASE/spring-boot- starter-logging-2.3.0.RELEASE.jar:/root/.m2/repository/ch/qos/logback/logback-classic/1.2。3/logback-classic-1.2.3.jar:/root/.m2/repository/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar:/root/.m2/存储库/org/slf4j/slf4j-api/1.7.30/slf4j-api-1.7.30.jar:/root/.m2/repository/org/apache/logging/log4j/log4j-to-slf4j/2.13.2/ log4j-to-slf4j-2.13.2.jar:/root/.m2/repository/org/apache/logging/log4j/log4j-api/2.13.2/log4j-api-2.13.2.jar:/root/。 m2/repository/org/slf4j/jul-to-slf4j/1.7.30/jul-to-slf4j-1.7.30.jar:/root/.m2/repository/org/jasypt/jasypt/1.9.2/jasypt- 1.9.2.jar:/root/.m2/repository/com/github/ulisesbocchio/jasypt-spring-boot/2.0.0/jasypt-spring-boot-2.0.0.jar:/root/.m2/repository/ org/springframework/experimental/spring-graalvm-native/0.7.0/spring-graalvm-native-0.7.0.jar:/tmp/pass-generator/target/pass-generator-0.0.1-stg-SNAPSHOT.jar --allow-incomplete-classpath --no-fallback -H:+ReportExceptionStackTraces --initialize-at-build-time=org.springframework.util.unit.DataSize -H:+TraceClassInitialization --no-server -R:MaxHeapSize=16g -J-Xmx16G -H:Class=com.my。 passgenerator.PassGeneratorApplication [com.my.passgenerator.passgeneratorapplication:1026375] 类列表:3,609.05 毫秒,1.63 GB ____ _ _____ _ /___| _ __ _ __(_)_ __ __ _ | ___|__ __ _| |_ _ _ _ __ ___ \___ \| '_ \| '__| | '_ \ / _` | | |_ / _ \/ _` | __| | | | '__/ _ \ ___) | |_) | | | | | | | (_| | | _| __/ (_| | |_| |_| | | | __/ |____/| .__/|_| |_|_| |_|\__, | |_| \___|\__,_|\__|\__,_|_| \___| |_| |___/ 在 FEATURE 模式下运行的功能 删除未使用的配置 在 native-image 调用上使用 -Dspring.native.verbose=true 以查看该功能的更多详细信息 [com.my.passgenerator.passgeneratorapplication:1026375](上限):872.48 毫秒,1.63 GB 在静态反射列表中找到 #6 个类型进行注册 跳过不在类路径上的 #6 类型 尝试注册 #19 代理 跳过 #17 代理的注册 - 相关类型不在类路径中 [com.my.passgenerator.passgeneratorapplication:1026375] 设置:2,094.23 毫秒,1.63 GB 注册资源 - #35 模式 注册资源 - #2 捆绑包 正在处理 META-INF/spring.factories 文件... spring.factories 处理,添加对关键 org.springframework.boot.diagnostics.analyzer.ValidationExceptionFailureAnalyzer 的访问的问题:javax/validation/ValidationException 处理 spring.factories - ApplicationListener 列出 #10 应用程序侦听器 处理 spring.factories - PropertySourceLoader 列出了#2 属性源加载器 spring.factories 处理,添加对关键 org.springframework.boot.autoconfigure.jdbc.HikariDriverConfigurationFailureAnalyzer 的访问的问题:org/springframework/jdbc/CannotGetJdbcConnectionException 处理 spring.factories - ApplicationListener 列出 #0 应用程序侦听器 处理 spring.factories - EnableAutoConfiguration 列出 #127 配置 从 spring.factories 文件中排除 115 个自动配置 处理 spring.factories - ApplicationListener 列出 #1 应用程序侦听器 处理 spring.factories - ApplicationListener 列出 #1 应用程序侦听器 找不到 META-INF/spring.components -> 正在合成一个... 计算的 spring.components 是 vvv ^^^ 已注册 0 个条目 为特定类型和包配置初始化时间: #87 buildtime-init-classes #23 buildtime-init-packages #33 runtime-init-classes #1 runtime-init-packages 警告:类 org.springframework.boot.validation.MessageInterpolatorFactory 的类初始化失败,出现异常 java.lang.NoClassDefFoundError: javax/validation/ValidationException。此类将在运行时初始化,因为选项 --allow-incomplete-classpath 用于图像构建。使用选项 --initialize-at-run-time=org.springframework.boot.validation.MessageInterpolatorFactory 显式请求此类的延迟初始化。 为反射访问动态注册的类型数:#856 [com.my.passgenerator.passgeneratorapplication:1026375] (clinit):503.31 毫秒,4.40 GB [com.my.passgenerator.passgeneratorapplication:1026375](类型流):10,414.71 毫秒,4.40 GB [com.my.passgenerator.passgeneratorapplication:1026375](对象):11,721.04 毫秒,4.40 GB [com.my.passgenerator.passgeneratorapplication:1026375](功能):2,246.52 毫秒,4.40 GB [com.my.passgenerator.passgeneratorapplication:1026375] 分析:25,801.80 毫秒,4.40 GB [com.my.passgenerator.passgeneratorapplication:1026375] 宇宙:815.05 毫秒,4.40 GB [com.my.passgenerator.passgeneratorapplication:1026375](解析):1,752.35 毫秒,4.40 GB [com.my.passgenerator.passgeneratorapplication:1026375](内联):1,700.91 毫秒,5.03 GB [com.my.passgenerator.passgeneratorapplication:1026375](编译):15,841.57 毫秒,7.29 GB [com.my.passgenerator.passgeneratorapplication:1026375] 编译:20,640.83 毫秒,7.29 GB [com.my.passgenerator.passgeneratorapplication:1026375] 图像:2,280.36 毫秒,7.31 GB [com.my.passgenerator.passgeneratorapplication:1026375] 写入:373.32 毫秒,7.31 GB [com.my.passgenerator.passgeneratorapplication:1026375] [总计]:61,399.55 毫秒,7.31 GB [信息] [INFO] --- spring-boot-maven-plugin:2.3.0.RELEASE:repackage (repackage) @ pass-generator --- [INFO] 用重新打包的存档替换主要工件 [信息] --------------------------------------------- ------------------------- [信息] 构建成功 [信息] --------------------------------------------- ------------------------- [INFO] 总时间:01:04 分钟 [INFO] 完成时间:2020-06-13T16:54:19+08:00 [INFO] 最终内存:49M/1304M [信息] --------------------------------------------- ------------------------- 您在 /var/spool/mail/root 中有新邮件 [root@hostserver pass-generator]# ./target/com.my.passgenerator.passgeneratorapplication 2020-06-13 16:54:32.506 错误 1030001 --- [main] osboot.SpringApplication:应用程序运行失败 org.springframework.beans.factory.BeanCreationException:创建名为“passGeneratorApplication”的bean时出错:bean实例化失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:无法实例化 [com.my.passgenerator.PassGeneratorApplication]:未找到默认构造函数;嵌套异常是 java.lang.NoSuchMethodException: com.my.passgenerator.PassGeneratorApplication.() 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1320) ~[na:na] 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1214) ~[na:na] 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:557) ~[na:na] 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517) ~[na:na] 在 org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323) ~[na:na] 在 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:226) ~[na:na] 在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321) ~[na:na] 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[na:na] 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:895) ~[na:na] 在 org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:878) ~[na:na] 在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550) ~[na:na] 在 org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758) ~[com.my.passgenerator.passgeneratorapplication:na] 在 org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750) ~[com.my.passgenerator.passgeneratorapplication:na] 在 org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) ~[com.my.passgenerator.passgeneratorapplication:na] 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:315) ~[com.my.passgenerator.passgeneratorapplication:na] 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:1237) ~[com.my.passgenerator.passgeneratorapplication:na] 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) ~[com.my.passgenerator.passgeneratorapplication:na] 在 com.my.passgenerator.PassGeneratorApplication.main(PassGeneratorApplication.java:29) [com.my.passgenerator.passgeneratorapplication:na] 原因:org.springframework.beans.BeanInstantiationException:无法实例化[com.my.passgenerator.PassGeneratorApplication]:未找到默认构造函数;嵌套异常是 java.lang.NoSuchMethodException: com.my.passgenerator.PassGeneratorApplication.() 在 org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:83) ~[na:na] 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1312) ~[na:na] ...省略了17个常用框架 引起:java.lang.NoSuchMethodException: com.my.passgenerator.PassGeneratorApplication.() 在 java.lang.Class.getConstructor0(DynamicHub.java:3082) ~[na:na] 在 java.lang.Class.getDeclaredConstructor(DynamicHub.java:2178) ~[na:na] 在 org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:78) ~[na:na] ...省略了18个常用框架