You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
bomou@dialga:~/project/demo$ ./gradlew clean nativeCompile
Starting a Gradle Daemon, 1 incompatible Daemon could not be reused, use --status for details
> Configure project :
Repository https://plugins.gradle.org/m2 deleted.
> Task :processAot
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \( ( )\___ | '_ |'_| | '_ \/ _`|\ \ \ \\\/ ___)||_)||||||| (_|| ) ) ) )' |____| .__|_| |_|_| |_\__, | / / / /=========|_|==============|___/=/_/_/_/:: Spring Boot :: (v3.0.6)2023-05-05T23:27:32.109+08:00 INFO 354838 --- [ main] com.example.demo.DemoApplication : Starting DemoApplication using Java 17.0.5 with PID 354838 (/home/bomou/project/demo/build/classes/java/main started by bomou in /home/bomou/project/demo)2023-05-05T23:27:32.112+08:00 INFO 354838 --- [ main] com.example.demo.DemoApplication : No active profile set, falling back to 1 default profile: "default"2023-05-05T23:27:32.771+08:00 INFO 354838 --- [ main] o.s.cloud.context.scope.GenericScope : BeanFactory id=87e24bf6-2d3a-380b-bb92-eb9b769892da> Task :compileAotJavaNote: /home/bomou/project/demo/build/generated/aotSources/org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration__BeanDefinitions.java uses or overrides a deprecated API.Note: Recompile with -Xlint:deprecation for details.> Task :generateResourcesConfigFile[native-image-plugin] Resources configuration written into /home/bomou/project/demo/build/native/generated/generateResourcesConfigFile/resource-config.json> Task :nativeCompile[native-image-plugin] GraalVM Toolchain detection is disabled[native-image-plugin] GraalVM location read from environment variable: JAVA_HOME[native-image-plugin] Native Image executable path: /home/bomou/.sdkman/candidates/java/22.3.r17-nik/lib/svm/bin/native-image=======================================================================================================================GraalVM Native Image: Generating 'demo' (executable)...========================================================================================================================Warning: Could not resolve com.sun.el.ExpressionFactoryImpl for reflection configuration. Reason: java.lang.ClassNotFoundException: com.sun.el.ExpressionFactoryImpl.Warning: Could not resolve groovy.grape.GrabAnnotationTransformation for reflection configuration. Reason: java.lang.ClassNotFoundException: groovy.grape.GrabAnnotationTransformation.Warning: Could not resolve groovy.lang.Script for reflection configuration. Reason: java.lang.ClassNotFoundException: groovy.lang.Script.Warning: Could not resolve groovy.lang.Script for reflection configuration. Reason: java.lang.ClassNotFoundException: groovy.lang.Script.Warning: Could not resolve groovyjarjarantlr.CommonToken for reflection configuration. Reason: java.lang.ClassNotFoundException: groovyjarjarantlr.CommonToken.Warning: Could not resolve jakarta.persistence.Persistence for reflection configuration. Reason: java.lang.ClassNotFoundException: jakarta.persistence.Persistence.Warning: Could not resolve javafx.beans.value.ObservableValue for reflection configuration. Reason: java.lang.ClassNotFoundException: javafx.beans.value.ObservableValue.Warning: Could not resolve javax.money.MonetaryAmount for reflection configuration. Reason: java.lang.ClassNotFoundException: javax.money.MonetaryAmount.Warning: Could not resolve org.codehaus.groovy.antlr.GroovySourceAST for reflection configuration. Reason: java.lang.ClassNotFoundException: org.codehaus.groovy.antlr.GroovySourceAST.Warning: Could not resolve org.codehaus.groovy.ast.builder.AstBuilderTransformation for reflection configuration. Reason: java.lang.ClassNotFoundException: org.codehaus.groovy.ast.builder.AstBuilderTransformation.Warning: Could not resolve org.codehaus.groovy.runtime.ScriptBytecodeAdapter for reflection configuration. Reason: java.lang.ClassNotFoundException: org.codehaus.groovy.runtime.ScriptBytecodeAdapter.Warning: Could not resolve org.glassfish.expressly.ValueExpressionImpl for reflection configuration. Reason: java.lang.ClassNotFoundException: org.glassfish.expressly.ValueExpressionImpl.Warning: Could not resolve org.glassfish.expressly.parser.AstValue for reflection configuration. Reason: java.lang.ClassNotFoundException: org.glassfish.expressly.parser.AstValue.Warning: Could not resolve org.joda.time.ReadableInstant for reflection configuration. Reason: java.lang.ClassNotFoundException: org.joda.time.ReadableInstant.Warning: Could not register method org.hibernate.validator.internal.constraintvalidators.bv.time.future.FutureValidatorForReadablePartial.<init>() for reflection. Reason: java.lang.NoClassDefFoundError: org/joda/time/ReadableInstant.Warning: Could not register method org.hibernate.validator.internal.constraintvalidators.bv.time.futureorpresent.FutureOrPresentValidatorForReadablePartial.<init>() for reflection. Reason: java.lang.NoClassDefFoundError: org/joda/time/ReadableInstant.Warning: Could not register method org.hibernate.validator.internal.constraintvalidators.bv.time.past.PastValidatorForReadablePartial.<init>() for reflection. Reason: java.lang.NoClassDefFoundError: org/joda/time/ReadableInstant.Warning: Could not register method org.hibernate.validator.internal.constraintvalidators.bv.time.pastorpresent.PastOrPresentValidatorForReadablePartial.<init>() for reflection. Reason: java.lang.NoClassDefFoundError: org/joda/time/ReadableInstant.Warning: Could not resolve org.jboss.logmanager.LogManager for reflection configuration. Reason: java.lang.ClassNotFoundException: org.jboss.logmanager.LogManager.Warning: Could not resolve org.apache.commons.logging.impl.Jdk14Logger for reflection configuration. Reason: java.lang.ClassNotFoundException: org.apache.commons.logging.impl.Jdk14Logger.Warning: Could not resolve org.apache.commons.logging.impl.Log4JLogger for reflection configuration. Reason: java.lang.ClassNotFoundException: org.apache.commons.logging.impl.Log4JLogger.Warning: Could not resolve org.apache.commons.logging.impl.LogFactoryImpl for reflection configuration. Reason: java.lang.ClassNotFoundException: org.apache.commons.logging.impl.LogFactoryImpl.Warning: Could not resolve org.apache.commons.logging.impl.WeakHashtable for reflection configuration. Reason: java.lang.ClassNotFoundException: org.apache.commons.logging.impl.WeakHashtable.Warning: Method sun.security.x509.AuthorityInfoAccessExtension.<init>() not found.Warning: Method sun.security.x509.AuthorityKeyIdentifierExtension.<init>() not found.Warning: Method sun.security.x509.BasicConstraintsExtension.<init>() not found.Warning: Method sun.security.x509.CRLDistributionPointsExtension.<init>() not found.Warning: Method sun.security.x509.CertificatePoliciesExtension.<init>() not found.Warning: Method sun.security.x509.ExtendedKeyUsageExtension.<init>() not found.Warning: Method sun.security.x509.PrivateKeyUsageExtension.<init>() not found.Warning: Method sun.security.x509.SubjectKeyIdentifierExtension.<init>() not found.[1/7] Initializing... (9.0s @ 0.31GB)Version info: 'GraalVM 22.3.0 Java 17 CE'Java version info: '17.0.5+8-LTS'C compiler: gcc (linux, x86_64, 10.2.1)Garbage collector: Serial GC2 user-specific feature(s)- com.oracle.svm.thirdparty.gson.GsonFeature- org.springframework.aot.nativex.feature.PreComputeFieldFeatureField org.apache.commons.logging.LogAdapter#log4jSpiPresent set to true at build timeField org.apache.commons.logging.LogAdapter#log4jSlf4jProviderPresent set to true at build timeField org.apache.commons.logging.LogAdapter#slf4jSpiPresent set to true at build timeField org.apache.commons.logging.LogAdapter#slf4jApiPresent set to true at build timeField org.springframework.core.NativeDetector#imageCode set to true at build timeField org.springframework.format.support.DefaultFormattingConversionService#jsr354Present set to false at build timeField org.springframework.core.KotlinDetector#kotlinPresent set to false at build timeField org.springframework.core.KotlinDetector#kotlinReflectPresent set to false at build timeField org.springframework.cglib.core.AbstractClassGenerator#imageCode set to true at build timeField org.springframework.boot.logging.log4j2.Log4J2LoggingSystem$Factory#PRESENT set to false at build timeField org.springframework.cloud.bootstrap.TextEncryptorConfigBootstrapper#RSA_IS_PRESENT set to true at build timeField org.springframework.web.servlet.view.InternalResourceViewResolver#jstlPresent set to false at build timeField org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport#romePresent set to false at build timeField org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport#jaxb2Present set to false at build timeField org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport#jackson2Present set to true at build timeField org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport#jackson2XmlPresent set to false at build timeField org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport#jackson2SmilePresent set to false at build timeField org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport#jackson2CborPresent set to false at build timeField org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport#gsonPresent set to true at build timeField org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport#jsonbPresent set to false at build timeField org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport#kotlinSerializationCborPresent set to false at build timeField org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport#kotlinSerializationJsonPresent set to false at build timeField org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport#kotlinSerializationProtobufPresent set to false at build timeField org.springframework.http.converter.json.Jackson2ObjectMapperBuilder#jackson2XmlPresent set to false at build timeField org.springframework.boot.logging.java.JavaLoggingSystem$Factory#PRESENT set to true at build timeField org.springframework.web.client.RestTemplate#romePresent set to false at build timeField org.springframework.web.client.RestTemplate#jaxb2Present set to false at build timeField org.springframework.web.client.RestTemplate#jackson2Present set to true at build timeField org.springframework.web.client.RestTemplate#jackson2XmlPresent set to false at build timeField org.springframework.web.client.RestTemplate#jackson2SmilePresent set to false at build timeField org.springframework.web.client.RestTemplate#jackson2CborPresent set to false at build timeField org.springframework.web.client.RestTemplate#gsonPresent set to true at build timeField org.springframework.web.client.RestTemplate#jsonbPresent set to false at build timeField org.springframework.web.client.RestTemplate#kotlinSerializationCborPresent set to false at build timeField org.springframework.web.client.RestTemplate#kotlinSerializationJsonPresent set to false at build timeField org.springframework.web.client.RestTemplate#kotlinSerializationProtobufPresent set to false at build timeField org.springframework.boot.logging.logback.LogbackLoggingSystem$Factory#PRESENT set to true at build timeField org.springframework.core.ReactiveAdapterRegistry#reactorPresent set to true at build timeField org.springframework.core.ReactiveAdapterRegistry#rxjava3Present set to false at build timeField org.springframework.core.ReactiveAdapterRegistry#kotlinCoroutinesPresent set to false at build timeField org.springframework.core.ReactiveAdapterRegistry#mutinyPresent set to false at build timeField org.springframework.web.context.support.StandardServletEnvironment#jndiPresent set to true at build timeField org.springframework.context.event.ApplicationListenerMethodAdapter#reactiveStreamsPresent set to true at build timeField org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter#jaxb2Present set to false at build timeField org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter#jackson2Present set to true at build timeField org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter#jackson2XmlPresent set to false at build timeField org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter#jackson2SmilePresent set to false at build timeField org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter#gsonPresent set to true at build timeField org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter#jsonbPresent set to false at build timeField org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter#kotlinSerializationCborPresent set to false at build timeField org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter#kotlinSerializationJsonPresent set to false at build timeField org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter#kotlinSerializationProtobufPresent set to false at build timeField org.springframework.web.context.support.WebApplicationContextUtils#jsfPresent set to false at build timeField org.springframework.web.context.request.RequestContextHolder#jsfPresent set to false at build timeField org.springframework.boot.logging.logback.LogbackLoggingSystemProperties#JBOSS_LOGGING_PRESENT set to true at build timeField org.springframework.boot.autoconfigure.web.format.WebConversionService#JSR_354_PRESENT set to false at build timeSLF4J: No SLF4J providers were found.SLF4J: Defaulting to no-operation (NOP) logger implementationSLF4J: See https://www.slf4j.org/codes.html#noProviders for further details.Field org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler#isContextPropagationPresent set to false at build timeField org.springframework.web.servlet.support.RequestContext#jstlPresent set to false at build time[2/7] Performing analysis... [*********] (51.6s @ 1.82GB)19,635 (92.81%) of 21,156 classes reachable31,474 (68.30%) of 46,083 fields reachable91,672 (61.80%) of 148,344 methods reachable1,355 classes, 630 fields, and 6,602 methods registered for reflection 64 classes, 70 fields, and 55 methods registered for JNI access 4 native libraries: dl, pthread, rt, z[3/7] Building universe... (5.8s @ 1.94GB)[4/7] Parsing methods... [***] (5.3s @ 2.44GB)[5/7] Inlining methods... [***] (2.1s @ 2.21GB)[6/7] Compiling methods... [******] (33.2s @ 1.72GB)[7/7] Creating image... (5.1s @ 2.80GB)39.41MB (48.11%) for code area: 59,834 compilation units39.23MB (47.89%) for image heap: 445,881 objects and 269 resources3.27MB ( 4.00%) for other data81.92MB in total------------------------------------------------------------------------------------------------------------------------Top 10 packages in code area: Top 10 object types in image heap:1.63MB sun.security.ssl 8.67MB byte[] for code metadata1.09MB java.util 4.66MB java.lang.Class853.77KB java.lang.invoke 4.18MB java.lang.String717.98KB com.sun.crypto.provider 3.65MB byte[] for java.lang.String596.88KB jdk.proxy4 3.52MB byte[] for general heap data538.70KB org.apache.catalina.core 2.64MB byte[] for embedded resources504.55KB org.apache.tomcat.util.net 1.65MB com.oracle.svm.core.hub.DynamicHubCompanion489.62KB org.apache.coyote.http2 1.16MB byte[] for reflection metadata488.91KB java.util.concurrent 805.16KB java.lang.String[]488.77KB java.lang 691.37KB c.o.svm.core.hub.DynamicHub$ReflectionMetadata31.68MB for 874 more packages 6.92MB for 3707 more object types------------------------------------------------------------------------------------------------------------------------ 7.6s (6.4% of total time) in 75 GCs | Peak RSS: 4.30GB | CPU load: 5.91------------------------------------------------------------------------------------------------------------------------Produced artifacts:/home/bomou/project/demo/build/native/nativeCompile/demo (executable)/home/bomou/project/demo/build/native/nativeCompile/demo.build_artifacts.txt (txt)========================================================================================================================Finished generating 'demo' in 1m 58s.[native-image-plugin] Native Image written to: /home/bomou/project/demo/build/native/nativeCompileBUILD SUCCESSFUL in 2m 11s10 actionable tasks: 10 executed
If directly run with ./gradlew bootRun, it works.
But if with spring.cloud.consul.discovery.health-check-path specified, the problem will raise.
bomou@dialga:~/project/demo$ ./build/native/nativeCompile/demo --spring.cloud.consul.discovery.health-check-path=/actuator/health
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \( ( )\___ | '_ |'_| | '_ \/ _`|\ \ \ \\\/ ___)||_)||||||| (_|| ) ) ) )' |____| .__|_| |_|_| |_\__, | / / / /=========|_|==============|___/=/_/_/_/:: Spring Boot :: (v3.0.6)2023-05-05T23:57:05.377+08:00 INFO 355100 --- [ main] com.example.demo.DemoApplication : Starting AOT-processed DemoApplication using Java 17.0.5 with PID 355100 (/home/bomou/project/demo/build/native/nativeCompile/demo started by bomou in /home/bomou/project/demo)2023-05-05T23:57:05.377+08:00 INFO 355100 --- [ main] com.example.demo.DemoApplication : No active profile set, falling back to 1 default profile: "default"2023-05-05T23:57:05.378+08:00 INFO 355100 --- [ main] o.s.cloud.context.scope.GenericScope : BeanFactory id=6bb999ab-e7c4-3fbd-a0aa-954477fd726c2023-05-05T23:57:05.389+08:00 INFO 355100 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)2023-05-05T23:57:05.389+08:00 INFO 355100 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]2023-05-05T23:57:05.389+08:00 INFO 355100 --- [ main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.8]2023-05-05T23:57:05.393+08:00 INFO 355100 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext2023-05-05T23:57:05.393+08:00 INFO 355100 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 16 ms2023-05-05T23:57:06.422+08:00 INFO 355100 --- [ main] o.s.cloud.commons.util.InetUtils : Cannot determine local hostname2023-05-05T23:57:06.424+08:00 WARN 355100 --- [ main] w.s.c.ServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'compositeDiscoveryClient': Unsatisfied dependency expressed through method 'compositeDiscoveryClient' parameter 0: Error creating bean with name 'consulDiscoveryClient': Unsatisfied dependency expressed through method 'consulDiscoveryClient' parameter 1: Error creating bean with name 'consulDiscoveryProperties': Runtime reflection is not supported for public void org.springframework.cloud.consul.discovery.ConsulDiscoveryProperties.setHealthCheckPath(java.lang.String)2023-05-05T23:57:06.424+08:00 INFO 355100 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat]2023-05-05T23:57:06.425+08:00 ERROR 355100 --- [ main] o.s.boot.SpringApplication : Application run failedorg.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'compositeDiscoveryClient': Unsatisfied dependency expressed through method 'compositeDiscoveryClient' parameter 0: Error creating bean with name 'consulDiscoveryClient': Unsatisfied dependency expressed through method 'consulDiscoveryClient' parameter 1: Error creating bean with name 'consulDiscoveryProperties': Runtime reflection is not supported for public void org.springframework.cloud.consul.discovery.ConsulDiscoveryProperties.setHealthCheckPath(java.lang.String) at org.springframework.beans.factory.aot.BeanInstanceSupplier.resolveArgument(BeanInstanceSupplier.java:343) ~[na:na] at org.springframework.beans.factory.aot.BeanInstanceSupplier.resolveArguments(BeanInstanceSupplier.java:267) ~[na:na] at org.springframework.beans.factory.aot.BeanInstanceSupplier.get(BeanInstanceSupplier.java:202) ~[na:na] at org.springframework.beans.factory.support.DefaultListableBeanFactory.obtainInstanceFromSupplier(DefaultListableBeanFactory.java:947) ~[demo:6.0.8] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainFromSupplier(AbstractAutowireCapableBeanFactory.java:1214) ~[demo:6.0.8] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1158) ~[demo:6.0.8] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:560) ~[demo:6.0.8] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520) ~[demo:6.0.8] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) ~[demo:6.0.8] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[demo:6.0.8] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) ~[demo:6.0.8] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[demo:6.0.8] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:973) ~[demo:6.0.8] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:917) ~[demo:6.0.8] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:584) ~[demo:6.0.8] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[demo:3.0.6] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732) ~[demo:3.0.6] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:434) ~[demo:3.0.6] at org.springframework.boot.SpringApplication.run(SpringApplication.java:310) ~[demo:3.0.6] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1304) ~[demo:3.0.6] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1293) ~[demo:3.0.6] at com.example.demo.DemoApplication.main(DemoApplication.java:10) ~[demo:na]Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'consulDiscoveryClient': Unsatisfied dependency expressed through method 'consulDiscoveryClient' parameter 1: Error creating bean with name 'consulDiscoveryProperties': Runtime reflection is not supported for public void org.springframework.cloud.consul.discovery.ConsulDiscoveryProperties.setHealthCheckPath(java.lang.String) at org.springframework.beans.factory.aot.BeanInstanceSupplier.resolveArgument(BeanInstanceSupplier.java:343) ~[na:na] at org.springframework.beans.factory.aot.BeanInstanceSupplier.resolveArguments(BeanInstanceSupplier.java:267) ~[na:na] at org.springframework.beans.factory.aot.BeanInstanceSupplier.get(BeanInstanceSupplier.java:202) ~[na:na] at org.springframework.beans.factory.support.DefaultListableBeanFactory.obtainInstanceFromSupplier(DefaultListableBeanFactory.java:947) ~[demo:6.0.8] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainFromSupplier(AbstractAutowireCapableBeanFactory.java:1214) ~[demo:6.0.8] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1158) ~[demo:6.0.8] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:560) ~[demo:6.0.8] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520) ~[demo:6.0.8] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) ~[demo:6.0.8] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[demo:6.0.8] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) ~[demo:6.0.8] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[demo:6.0.8] at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) ~[demo:6.0.8] at org.springframework.beans.factory.support.DefaultListableBeanFactory.addCandidateEntry(DefaultListableBeanFactory.java:1633) ~[demo:6.0.8] at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1597) ~[demo:6.0.8] at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveMultipleBeans(DefaultListableBeanFactory.java:1488) ~[demo:6.0.8] at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1375) ~[demo:6.0.8] at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1337) ~[demo:6.0.8] at org.springframework.beans.factory.aot.BeanInstanceSupplier.resolveArgument(BeanInstanceSupplier.java:327) ~[na:na] ... 21 common frames omittedCaused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'consulDiscoveryProperties': Runtime reflection is not supported for public void org.springframework.cloud.consul.discovery.ConsulDiscoveryProperties.setHealthCheckPath(java.lang.String) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:605) ~[demo:6.0.8] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520) ~[demo:6.0.8] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) ~[demo:6.0.8] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[demo:6.0.8] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) ~[demo:6.0.8] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[demo:6.0.8] at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) ~[demo:6.0.8] at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1417) ~[demo:6.0.8] at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1337) ~[demo:6.0.8] at org.springframework.beans.factory.aot.BeanInstanceSupplier.resolveArgument(BeanInstanceSupplier.java:327) ~[na:na] ... 39 common frames omittedCaused by: com.oracle.svm.core.jdk.UnsupportedFeatureError: Runtime reflection is not supported for public void org.springframework.cloud.consul.discovery.ConsulDiscoveryProperties.setHealthCheckPath(java.lang.String) at org.graalvm.nativeimage.builder/com.oracle.svm.core.util.VMError.unsupportedFeature(VMError.java:89) ~[na:na] at [email protected]/java.lang.reflect.Method.acquireMethodAccessor(Method.java:71) ~[demo:na] at [email protected]/java.lang.reflect.Method.invoke(Method.java:566) ~[demo:na] at org.springframework.boot.context.properties.bind.JavaBeanBinder$BeanProperty.setValue(JavaBeanBinder.java:372) ~[na:na] at org.springframework.boot.context.properties.bind.JavaBeanBinder.bind(JavaBeanBinder.java:104) ~[na:na] at org.springframework.boot.context.properties.bind.JavaBeanBinder.bind(JavaBeanBinder.java:86) ~[na:na] at org.springframework.boot.context.properties.bind.JavaBeanBinder.bind(JavaBeanBinder.java:62) ~[na:na] at org.springframework.boot.context.properties.bind.Binder.lambda$bindDataObject$5(Binder.java:476) ~[demo:3.0.6] at org.springframework.boot.context.properties.bind.Binder$Context.withIncreasedDepth(Binder.java:590) ~[na:na] at org.springframework.boot.context.properties.bind.Binder$Context.withDataObject(Binder.java:576) ~[na:na] at org.springframework.boot.context.properties.bind.Binder.bindDataObject(Binder.java:474) ~[demo:3.0.6] at org.springframework.boot.context.properties.bind.Binder.bindObject(Binder.java:414) ~[demo:3.0.6] at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:343) ~[demo:3.0.6] at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:332) ~[demo:3.0.6] at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:262) ~[demo:3.0.6] at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:249) ~[demo:3.0.6] at org.springframework.boot.context.properties.ConfigurationPropertiesBinder.bind(ConfigurationPropertiesBinder.java:93) ~[demo:3.0.6] at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor.bind(ConfigurationPropertiesBindingPostProcessor.java:96) ~[demo:3.0.6] at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor.postProcessBeforeInitialization(ConfigurationPropertiesBindingPostProcessor.java:79) ~[demo:3.0.6] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:419) ~[demo:6.0.8] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1762) ~[demo:6.0.8] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:598) ~[demo:6.0.8] ... 48 common frames omitted
The text was updated successfully, but these errors were encountered:
Runtime reflection is not supported for public void org.springframework.cloud.consul.discovery.ConsulDiscoveryProperties.setHealthCheckPath
Describe the bug
A problem about runtime reflection will raise when compiled as a native image if the
spring.cloud.consul.discovery.xxx
in property is specified.Sample
My environment:
bomou@dialga:~/project/demo$ java --version openjdk 17.0.5 2022-10-18 LTS OpenJDK Runtime Environment GraalVM 22.3.0 (build 17.0.5+8-LTS) OpenJDK 64-Bit Server VM GraalVM 22.3.0 (build 17.0.5+8-LTS, mixed mode, sharing)
bomou@dialga:~/project/demo$ ./gradlew --version ------------------------------------------------------------ Gradle 7.6.1 ------------------------------------------------------------ Build time: 2023-02-24 13:54:42 UTC Revision: 3905fe8ac072bbd925c70ddbddddf4463341f4b4 Kotlin: 1.7.10 Groovy: 3.0.13 Ant: Apache Ant(TM) version 1.10.11 compiled on July 10 2021 JVM: 17.0.5 (BellSoft 17.0.5+8-LTS) OS: Linux 5.15.90.1-microsoft-standard-WSL2 amd64
Here's a minimized sample to reproduce.
The demo.zip may also help.
Create a template project with Spring Initializr, checked with Spring Web, Consul Discovery, GraalVM Native Support
Edit the
application.yml
:Run
nativeCompile
, it seems work well(maybe):If directly run with
./gradlew bootRun
, it works.But if with
spring.cloud.consul.discovery.health-check-path
specified, the problem will raise.The text was updated successfully, but these errors were encountered: