Use graalVM to compile native-image error:java.lang.NoSuchMethodException: org.springframework.boot.autoconfigure.AutoConfigurationPackages$Registrar

50 views Asked by At

Using graalVM to compile the java source file, the compilation can pass, but the following error occurs when executing it:

2024-02-07 14:37:13.007 [ERROR] [main] org.springframework.boot.SpringApplication - Application run failed
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class [cn.demo.start.ZsyStartApplication]: Failed to instantiate [org.springframework.boot.autoconfigure.AutoConfigurationPackages$Registrar]: No default constructor found
        at org.springframework.context.annotation.ConfigurationClassParser.processImports(ConfigurationClassParser.java:524)
        at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:304)
        at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:243)
        at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:192)
        at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:167)
        at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:415)
        at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:287)
        at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:344)
        at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:145)
        at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:771)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:589)
        at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:734)
        at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:436)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:312)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1295)
        at cn.hyperchain.zsy.start.ZsyStartApplication.main(ZsyStartApplication.java:18)
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.boot.autoconfigure.AutoConfigurationPackages$Registrar]: No default constructor found
        at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:147)
        at org.springframework.context.annotation.ParserStrategyUtils.createInstance(ParserStrategyUtils.java:86)
        at org.springframework.context.annotation.ParserStrategyUtils.instantiateClass(ParserStrategyUtils.java:65)
        at org.springframework.context.annotation.ConfigurationClassParser.processImports(ConfigurationClassParser.java:505)
        ... 17 common frames omitted
Caused by: java.lang.NoSuchMethodException: org.springframework.boot.autoconfigure.AutoConfigurationPackages$Registrar.<init>()
        at [email protected]/java.lang.Class.checkMethod(DynamicHub.java:1038)
        at [email protected]/java.lang.Class.getConstructor0(DynamicHub.java:1204)
        at [email protected]/java.lang.Class.getDeclaredConstructor(DynamicHub.java:2754)
        at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142)
        ... 20 common frames omitted

environment and version:

windows 10
graalvm                  23.0.3          
native-image             23.0.3 
springboot               3.1.2

I specified the class in reflect-config.json, but it did not take effect:

  {
    "name": "org.springframework.boot.autoconfigure.AutoConfigurationPackages",
    "allDeclaredFields": true,
    "allDeclaredConstructors": true,
    "allDeclaredMethods": true,
    "allPublicMethods": true,
    "allDeclaredClasses": true
  }
0

There are 0 answers