Closed jenkins-goldextech closed 3 years ago
For other class types, example: 'org.springframework.boot.env.RandomValuePropertySourceEnvironmentPostProcessor' which requires the same instance type, it's able to resolve it. See parameterTypes[i]
it's available (see parameterTypes and availableParameters):
I'm not able to reproduce the issue using Spring Boot 2.5.1 and Spring Cloud 2020.0.3. VaultConfigDataLoader
has a single constructor taking DeferredLogFactory
as an argument (using a vanilla app via start.spring.io). Can you please provide a reproducer? Debugger screenshots aren't terribly helpful.
Resolved! In the end it was an dependency issue. Thanks for looking into it as well.
Thanks a lot for the update. Closing the ticket.
versions used: version = [
springboot: "2.5.1", spring_cloud_consul: "3.0.3", spring_cloud_vault: "3.0.3" ]
yaml looks like:
Spring cloud/consul integration works fine, no issues. I then subsequently added vault to it and that's when my troubles started. If I remove the spring vault dependency then it works again (with just consul) .
Error: java.lang.IllegalArgumentException: Unable to instantiate org.springframework.boot.context.config.ConfigDataLoader [org.springframework.cloud.vault.config.VaultConfigDataLoader] at org.springframework.boot.util.Instantiator.instantiate(Instantiator.java:103) at org.springframework.boot.util.Instantiator.instantiate(Instantiator.java:90) at org.springframework.boot.context.config.ConfigDataLoaders.(ConfigDataLoaders.java:75)
at org.springframework.boot.context.config.ConfigDataLoaders.(ConfigDataLoaders.java:56)
at org.springframework.boot.context.config.ConfigDataEnvironment.(ConfigDataEnvironment.java:155)
at org.springframework.boot.context.config.ConfigDataEnvironmentPostProcessor.getConfigDataEnvironment(ConfigDataEnvironmentPostProcessor.java:108)
at org.springframework.boot.context.config.ConfigDataEnvironmentPostProcessor.postProcessEnvironment(ConfigDataEnvironmentPostProcessor.java:97)
at org.springframework.boot.context.config.ConfigDataEnvironmentPostProcessor.postProcessEnvironment(ConfigDataEnvironmentPostProcessor.java:89)
at org.springframework.boot.env.EnvironmentPostProcessorApplicationListener.onApplicationEnvironmentPreparedEvent(EnvironmentPostProcessorApplicationListener.java:100)
at org.springframework.boot.env.EnvironmentPostProcessorApplicationListener.onApplicationEvent(EnvironmentPostProcessorApplicationListener.java:86)
at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:176)
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:169)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:131)
at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:82)
at org.springframework.boot.SpringApplicationRunListeners.lambda$environmentPrepared$2(SpringApplicationRunListeners.java:63)
at java.util.ArrayList.forEach(ArrayList.java:1259)
at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:117)
at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:111)
at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:62)
at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:362)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:320)
at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:144)
at org.springframework.cloud.bootstrap.BootstrapApplicationListener.bootstrapServiceContext(BootstrapApplicationListener.java:197)
at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:114)
at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:77)
at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:176)
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:169)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:131)
at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:82)
at org.springframework.boot.SpringApplicationRunListeners.lambda$environmentPrepared$2(SpringApplicationRunListeners.java:63)
at java.util.ArrayList.forEach(ArrayList.java:1259)
at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:117)
at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:111)
at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:62)
at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:362)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:320)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1311)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1300)
at com.eldorado.marketdata.Application.main(Application.java:25)
Caused by: java.lang.IllegalAccessException: Unable to find suitable constructor
at org.springframework.boot.util.Instantiator.instantiate(Instantiator.java:118)
at org.springframework.boot.util.Instantiator.instantiate(Instantiator.java:100)
... 40 common frames omitted
I have debugged the issue however have no idea how to solve it. It can't instantiate class org.springframework.cloud.vault.config.VaultConfigDataLoader
Exception thrown here :
The parameterType of class 'interface org.springframework.boot.logging.DeferredLogFactory' is not assignable from available parameters
Has anybody faced this? I am blocked by this issue, any help greatly appreciated.