Hello Spring Cloud Team,
Describe the bug I'm using Spring Boot 2.4.6 and Spring Cloud 2020.0.3.
I use the new way of Spring Boot 2.4 to import data via the spring.config.import
with DiscoveryClient
(Eureka), but the application doesn't make the extra round trip at startup to locate the service registration.
However I have set spring.cloud.config.discovery.enabled=true
and the eureka.client.serviceUrl.defaultZone
properties but the application try to contact the config Server at it's default address http://localhost:8888/
.
Sample Here is a sample project initialized from Spring Initializr to reproduce the bug : https://github.com/edethoor/SB246.
This is my application.yml
file :
spring:
cloud:
config:
label: dev
discovery:
enabled: true
config:
import: "configserver:"
eureka:
client:
service-url:
defaultZone: "http://awl-cloud-eureka:8080/eureka/"
This are the startup logs :
C:\Javatools\java\jdk-11.0.1\bin\java.exe -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:57957,suspend=y,server=n -Ddebug -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -javaagent:C:\Utilisateurs\a556724\AppData\Local\JetBrains\IntelliJIdea2021.1\captureAgent\debugger-agent.jar -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true -Dfile.encoding=UTF-8 -classpath "C:\Repository\ede\SD24\SB246\target\classes;C:\Utilisateurs\a556724\.m2\repository\org\springframework\boot\spring-boot-starter-web\2.4.6\spring-boot-starter-web-2.4.6.jar;C:\Utilisateurs\a556724\.m2\repository\org\springframework\boot\spring-boot-starter\2.4.6\spring-boot-starter-2.4.6.jar;C:\Utilisateurs\a556724\.m2\repository\org\springframework\boot\spring-boot-starter-logging\2.4.6\spring-boot-starter-logging-2.4.6.jar;C:\Utilisateurs\a556724\.m2\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;C:\Utilisateurs\a556724\.m2\repository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;C:\Utilisateurs\a556724\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.13.3\log4j-to-slf4j-2.13.3.jar;C:\Utilisateurs\a556724\.m2\repository\org\apache\logging\log4j\log4j-api\2.13.3\log4j-api-2.13.3.jar;C:\Utilisateurs\a556724\.m2\repository\org\slf4j\jul-to-slf4j\1.7.30\jul-to-slf4j-1.7.30.jar;C:\Utilisateurs\a556724\.m2\repository\org\yaml\snakeyaml\1.27\snakeyaml-1.27.jar;C:\Utilisateurs\a556724\.m2\repository\org\springframework\boot\spring-boot-starter-json\2.4.6\spring-boot-starter-json-2.4.6.jar;C:\Utilisateurs\a556724\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.11.4\jackson-datatype-jdk8-2.11.4.jar;C:\Utilisateurs\a556724\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.11.4\jackson-datatype-jsr310-2.11.4.jar;C:\Utilisateurs\a556724\.m2\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.11.4\jackson-module-parameter-names-2.11.4.jar;C:\Utilisateurs\a556724\.m2\repository\org\springframework\spring-web\5.3.7\spring-web-5.3.7.jar;C:\Utilisateurs\a556724\.m2\repository\org\springframework\spring-beans\5.3.7\spring-beans-5.3.7.jar;C:\Utilisateurs\a556724\.m2\repository\org\springframework\spring-webmvc\5.3.7\spring-webmvc-5.3.7.jar;C:\Utilisateurs\a556724\.m2\repository\org\springframework\spring-aop\5.3.7\spring-aop-5.3.7.jar;C:\Utilisateurs\a556724\.m2\repository\org\springframework\spring-context\5.3.7\spring-context-5.3.7.jar;C:\Utilisateurs\a556724\.m2\repository\org\springframework\spring-expression\5.3.7\spring-expression-5.3.7.jar;C:\Utilisateurs\a556724\.m2\repository\org\springframework\cloud\spring-cloud-starter-config\3.0.4\spring-cloud-starter-config-3.0.4.jar;C:\Utilisateurs\a556724\.m2\repository\org\springframework\cloud\spring-cloud-starter\3.0.3\spring-cloud-starter-3.0.3.jar;C:\Utilisateurs\a556724\.m2\repository\org\springframework\cloud\spring-cloud-context\3.0.3\spring-cloud-context-3.0.3.jar;C:\Utilisateurs\a556724\.m2\repository\org\springframework\security\spring-security-crypto\5.4.6\spring-security-crypto-5.4.6.jar;C:\Utilisateurs\a556724\.m2\repository\org\springframework\cloud\spring-cloud-commons\3.0.3\spring-cloud-commons-3.0.3.jar;C:\Utilisateurs\a556724\.m2\repository\org\springframework\security\spring-security-rsa\1.0.10.RELEASE\spring-security-rsa-1.0.10.RELEASE.jar;C:\Utilisateurs\a556724\.m2\repository\org\bouncycastle\bcpkix-jdk15on\1.68\bcpkix-jdk15on-1.68.jar;C:\Utilisateurs\a556724\.m2\repository\org\bouncycastle\bcprov-jdk15on\1.68\bcprov-jdk15on-1.68.jar;C:\Utilisateurs\a556724\.m2\repository\org\springframework\cloud\spring-cloud-config-client\3.0.4\spring-cloud-config-client-3.0.4.jar;C:\Utilisateurs\a556724\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.11.4\jackson-annotations-2.11.4.jar;C:\Utilisateurs\a556724\.m2\repository\org\apache\httpcomponents\httpclient\4.5.13\httpclient-4.5.13.jar;C:\Utilisateurs\a556724\.m2\repository\org\apache\httpcomponents\httpcore\4.4.14\httpcore-4.4.14.jar;C:\Utilisateurs\a556724\.m2\repository\commons-codec\commons-codec\1.15\commons-codec-1.15.jar;C:\Utilisateurs\a556724\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.11.4\jackson-databind-2.11.4.jar;C:\Utilisateurs\a556724\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.11.4\jackson-core-2.11.4.jar;C:\Utilisateurs\a556724\.m2\repository\org\springframework\cloud\spring-cloud-starter-netflix-eureka-client\3.0.3\spring-cloud-starter-netflix-eureka-client-3.0.3.jar;C:\Utilisateurs\a556724\.m2\repository\org\springframework\cloud\spring-cloud-netflix-eureka-client\3.0.3\spring-cloud-netflix-eureka-client-3.0.3.jar;C:\Utilisateurs\a556724\.m2\repository\com\netflix\eureka\eureka-client\1.10.14\eureka-client-1.10.14.jar;C:\Utilisateurs\a556724\.m2\repository\com\netflix\netflix-commons\netflix-eventbus\0.3.0\netflix-eventbus-0.3.0.jar;C:\Utilisateurs\a556724\.m2\repository\com\netflix\netflix-commons\netflix-infix\0.3.0\netflix-infix-0.3.0.jar;C:\Utilisateurs\a556724\.m2\repository\commons-jxpath\commons-jxpath\1.3\commons-jxpath-1.3.jar;C:\Utilisateurs\a556724\.m2\repository\joda-time\joda-time\2.3\joda-time-2.3.jar;C:\Utilisateurs\a556724\.m2\repository\org\antlr\antlr-runtime\3.4\antlr-runtime-3.4.jar;C:\Utilisateurs\a556724\.m2\repository\org\antlr\stringtemplate\3.2.1\stringtemplate-3.2.1.jar;C:\Utilisateurs\a556724\.m2\repository\antlr\antlr\2.7.7\antlr-2.7.7.jar;C:\Utilisateurs\a556724\.m2\repository\com\google\code\gson\gson\2.8.6\gson-2.8.6.jar;C:\Utilisateurs\a556724\.m2\repository\org\apache\commons\commons-math\2.2\commons-math-2.2.jar;C:\Utilisateurs\a556724\.m2\repository\com\thoughtworks\xstream\xstream\1.4.16\xstream-1.4.16.jar;C:\Utilisateurs\a556724\.m2\repository\io\github\x-stream\mxparser\1.2.1\mxparser-1.2.1.jar;C:\Utilisateurs\a556724\.m2\repository\xmlpull\xmlpull\1.1.3.1\xmlpull-1.1.3.1.jar;C:\Utilisateurs\a556724\.m2\repository\javax\ws\rs\jsr311-api\1.1.1\jsr311-api-1.1.1.jar;C:\Utilisateurs\a556724\.m2\repository\com\netflix\servo\servo-core\0.12.21\servo-core-0.12.21.jar;C:\Utilisateurs\a556724\.m2\repository\com\google\guava\guava\19.0\guava-19.0.jar;C:\Utilisateurs\a556724\.m2\repository\commons-configuration\commons-configuration\1.10\commons-configuration-1.10.jar;C:\Utilisateurs\a556724\.m2\repository\commons-lang\commons-lang\2.6\commons-lang-2.6.jar;C:\Utilisateurs\a556724\.m2\repository\com\google\inject\guice\4.1.0\guice-4.1.0.jar;C:\Utilisateurs\a556724\.m2\repository\javax\inject\javax.inject\1\javax.inject-1.jar;C:\Utilisateurs\a556724\.m2\repository\aopalliance\aopalliance\1.0\aopalliance-1.0.jar;C:\Utilisateurs\a556724\.m2\repository\org\codehaus\jettison\jettison\1.4.0\jettison-1.4.0.jar;C:\Utilisateurs\a556724\.m2\repository\com\netflix\eureka\eureka-core\1.10.14\eureka-core-1.10.14.jar;C:\Utilisateurs\a556724\.m2\repository\com\fasterxml\woodstox\woodstox-core\6.2.1\woodstox-core-6.2.1.jar;C:\Utilisateurs\a556724\.m2\repository\org\codehaus\woodstox\stax2-api\4.2.1\stax2-api-4.2.1.jar;C:\Utilisateurs\a556724\.m2\repository\org\springframework\cloud\spring-cloud-starter-loadbalancer\3.0.3\spring-cloud-starter-loadbalancer-3.0.3.jar;C:\Utilisateurs\a556724\.m2\repository\org\springframework\cloud\spring-cloud-loadbalancer\3.0.3\spring-cloud-loadbalancer-3.0.3.jar;C:\Utilisateurs\a556724\.m2\repository\org\springframework\boot\spring-boot-starter-validation\2.4.6\spring-boot-starter-validation-2.4.6.jar;C:\Utilisateurs\a556724\.m2\repository\org\hibernate\validator\hibernate-validator\6.1.7.Final\hibernate-validator-6.1.7.Final.jar;C:\Utilisateurs\a556724\.m2\repository\jakarta\validation\jakarta.validation-api\2.0.2\jakarta.validation-api-2.0.2.jar;C:\Utilisateurs\a556724\.m2\repository\org\jboss\logging\jboss-logging\3.4.1.Final\jboss-logging-3.4.1.Final.jar;C:\Utilisateurs\a556724\.m2\repository\com\fasterxml\classmate\1.5.1\classmate-1.5.1.jar;C:\Utilisateurs\a556724\.m2\repository\io\projectreactor\reactor-core\3.4.6\reactor-core-3.4.6.jar;C:\Utilisateurs\a556724\.m2\repository\org\reactivestreams\reactive-streams\1.0.3\reactive-streams-1.0.3.jar;C:\Utilisateurs\a556724\.m2\repository\io\projectreactor\addons\reactor-extra\3.4.3\reactor-extra-3.4.3.jar;C:\Utilisateurs\a556724\.m2\repository\org\springframework\boot\spring-boot-starter-cache\2.4.6\spring-boot-starter-cache-2.4.6.jar;C:\Utilisateurs\a556724\.m2\repository\org\springframework\spring-context-support\5.3.7\spring-context-support-5.3.7.jar;C:\Utilisateurs\a556724\.m2\repository\com\stoyanr\evictor\1.0.0\evictor-1.0.0.jar;C:\Utilisateurs\a556724\.m2\repository\org\springframework\boot\spring-boot-devtools\2.4.6\spring-boot-devtools-2.4.6.jar;C:\Utilisateurs\a556724\.m2\repository\org\springframework\boot\spring-boot\2.4.6\spring-boot-2.4.6.jar;C:\Utilisateurs\a556724\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\2.4.6\spring-boot-autoconfigure-2.4.6.jar;C:\Utilisateurs\a556724\.m2\repository\org\springframework\boot\spring-boot-starter-tomcat\2.4.6\spring-boot-starter-tomcat-2.4.6.jar;C:\Utilisateurs\a556724\.m2\repository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;C:\Utilisateurs\a556724\.m2\repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.46\tomcat-embed-core-9.0.46.jar;C:\Utilisateurs\a556724\.m2\repository\org\glassfish\jakarta.el\3.0.3\jakarta.el-3.0.3.jar;C:\Utilisateurs\a556724\.m2\repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.46\tomcat-embed-websocket-9.0.46.jar;C:\Utilisateurs\a556724\.m2\repository\org\slf4j\slf4j-api\1.7.30\slf4j-api-1.7.30.jar;C:\Utilisateurs\a556724\.m2\repository\org\springframework\spring-core\5.3.7\spring-core-5.3.7.jar;C:\Utilisateurs\a556724\.m2\repository\org\springframework\spring-jcl\5.3.7\spring-jcl-5.3.7.jar;C:\Program Files\JetBrains\IntelliJ IDEA 2018.3\lib\idea_rt.jar" com.example.sd24.Sd24Application
Connected to the target VM, address: '127.0.0.1:57957', transport: 'socket'
09:53:26.331 [restartedMain] ERROR org.springframework.boot.SpringApplication - Application run failed
org.springframework.cloud.config.client.ConfigClientFailFastException: Could not locate PropertySource and the resource is not optional, failing
at org.springframework.cloud.config.client.ConfigServerConfigDataLoader.doLoad(ConfigServerConfigDataLoader.java:193)
at org.springframework.cloud.config.client.ConfigServerConfigDataLoader.load(ConfigServerConfigDataLoader.java:101)
at org.springframework.cloud.config.client.ConfigServerConfigDataLoader.load(ConfigServerConfigDataLoader.java:60)
at org.springframework.boot.context.config.ConfigDataLoaders.load(ConfigDataLoaders.java:103)
at org.springframework.boot.context.config.ConfigDataImporter.load(ConfigDataImporter.java:128)
at org.springframework.boot.context.config.ConfigDataImporter.resolveAndLoad(ConfigDataImporter.java:86)
at org.springframework.boot.context.config.ConfigDataEnvironmentContributors.withProcessedImports(ConfigDataEnvironmentContributors.java:121)
at org.springframework.boot.context.config.ConfigDataEnvironment.processWithProfiles(ConfigDataEnvironment.java:314)
at org.springframework.boot.context.config.ConfigDataEnvironment.processAndApply(ConfigDataEnvironment.java:235)
at org.springframework.boot.context.config.ConfigDataEnvironmentPostProcessor.postProcessEnvironment(ConfigDataEnvironmentPostProcessor.java:102)
at org.springframework.boot.context.config.ConfigDataEnvironmentPostProcessor.postProcessEnvironment(ConfigDataEnvironmentPostProcessor.java:94)
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.base/java.util.ArrayList.forEach(ArrayList.java:1540)
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:375)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:333)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1329)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1318)
at com.example.sd24.Sd24Application.main(Sd24Application.java:10)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49)
Caused by: org.springframework.web.client.ResourceAccessException: I/O error on GET request for "http://localhost:8888/application/default/dev": Connection refused: connect; nested exception is java.net.ConnectException: Connection refused: connect
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:785)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:711)
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:602)
at org.springframework.cloud.config.client.ConfigServerConfigDataLoader.getRemoteEnvironment(ConfigServerConfigDataLoader.java:299)
at org.springframework.cloud.config.client.ConfigServerConfigDataLoader.doLoad(ConfigServerConfigDataLoader.java:117)
... 32 common frames omitted
Caused by: java.net.ConnectException: Connection refused: connect
at java.base/java.net.PlainSocketImpl.waitForConnect(Native Method)
at java.base/java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:107)
at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399)
at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242)
at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224)
at java.base/java.net.Socket.connect(Socket.java:591)
at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:177)
at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:474)
at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:569)
at java.base/sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:341)
at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:362)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1242)
at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1181)
at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1075)
at java.base/sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:1009)
at org.springframework.http.client.SimpleBufferingClientHttpRequest.executeInternal(SimpleBufferingClientHttpRequest.java:76)
at org.springframework.http.client.AbstractBufferingClientHttpRequest.executeInternal(AbstractBufferingClientHttpRequest.java:48)
at org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:66)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:776)
... 36 common frames omitted
Disconnected from the target VM, address: '127.0.0.1:57957', transport: 'socket'
Process finished with exit code 0
Am I making a mistake ? Thanks, Etienne.
Comment From: ryanjbaxter
Can you set spring.config.import=optional:configserver:
and try again?
Comment From: edethoor
Hello @ryanjbaxter ,
Il y set spring.config.import=optional:configserver:
, the application try to use the serviceDiscovery to retrieve information about configServer instances.
But if there is none instances of configServer registered, the application try to reach a configServer at it's default address and accept to start due to the used of 'optional:'.
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.4.6)
2021-06-02 11:25:18.880 INFO 8492 --- [ restartedMain] com.example.sd24.Sd24Application : Starting Sd24Application using Java 11.0.1 on EFR00491 with PID 8492 (C:\Repository\ede\SD24\SB246\target\classes started by A556724 in C:\Repository\ede\SD24\SB246)
2021-06-02 11:25:18.885 INFO 8492 --- [ restartedMain] com.example.sd24.Sd24Application : No active profile set, falling back to default profiles: default
2021-06-02 11:25:18.964 WARN 8492 --- [ restartedMain] o.s.b.c.c.ConfigDataLocationResolver : Could not locate configserver via discovery
java.lang.IllegalStateException: No instances found of configserver (toto)
at org.springframework.cloud.config.client.ConfigServerInstanceProvider.getConfigServerInstances(ConfigServerInstanceProvider.java:59) ~[spring-cloud-config-client-3.0.4.jar:3.0.4]
at org.springframework.cloud.config.client.ConfigServerInstanceMonitor.refresh(ConfigServerInstanceMonitor.java:90) ~[spring-cloud-config-client-3.0.4.jar:3.0.4]
at org.springframework.cloud.config.client.ConfigServerConfigDataLocationResolver.lambda$resolveProfileSpecific$8(ConfigServerConfigDataLocationResolver.java:218) ~[spring-cloud-config-client-3.0.4.jar:3.0.4]
at org.springframework.boot.DefaultBootstrapContext.getInstance(DefaultBootstrapContext.java:119) ~[spring-boot-2.4.6.jar:2.4.6]
at org.springframework.boot.DefaultBootstrapContext.getOrElseThrow(DefaultBootstrapContext.java:111) ~[spring-boot-2.4.6.jar:2.4.6]
at org.springframework.boot.DefaultBootstrapContext.get(DefaultBootstrapContext.java:88) ~[spring-boot-2.4.6.jar:2.4.6]
at org.springframework.cloud.config.client.ConfigServerConfigDataLoader.load(ConfigServerConfigDataLoader.java:84) ~[spring-cloud-config-client-3.0.4.jar:3.0.4]
at org.springframework.cloud.config.client.ConfigServerConfigDataLoader.load(ConfigServerConfigDataLoader.java:60) ~[spring-cloud-config-client-3.0.4.jar:3.0.4]
at org.springframework.boot.context.config.ConfigDataLoaders.load(ConfigDataLoaders.java:103) ~[spring-boot-2.4.6.jar:2.4.6]
at org.springframework.boot.context.config.ConfigDataImporter.load(ConfigDataImporter.java:128) ~[spring-boot-2.4.6.jar:2.4.6]
at org.springframework.boot.context.config.ConfigDataImporter.resolveAndLoad(ConfigDataImporter.java:86) ~[spring-boot-2.4.6.jar:2.4.6]
at org.springframework.boot.context.config.ConfigDataEnvironmentContributors.withProcessedImports(ConfigDataEnvironmentContributors.java:121) ~[spring-boot-2.4.6.jar:2.4.6]
at org.springframework.boot.context.config.ConfigDataEnvironment.processWithProfiles(ConfigDataEnvironment.java:314) ~[spring-boot-2.4.6.jar:2.4.6]
at org.springframework.boot.context.config.ConfigDataEnvironment.processAndApply(ConfigDataEnvironment.java:235) ~[spring-boot-2.4.6.jar:2.4.6]
at org.springframework.boot.context.config.ConfigDataEnvironmentPostProcessor.postProcessEnvironment(ConfigDataEnvironmentPostProcessor.java:102) ~[spring-boot-2.4.6.jar:2.4.6]
at org.springframework.boot.context.config.ConfigDataEnvironmentPostProcessor.postProcessEnvironment(ConfigDataEnvironmentPostProcessor.java:94) ~[spring-boot-2.4.6.jar:2.4.6]
at org.springframework.boot.env.EnvironmentPostProcessorApplicationListener.onApplicationEnvironmentPreparedEvent(EnvironmentPostProcessorApplicationListener.java:100) ~[spring-boot-2.4.6.jar:2.4.6]
at org.springframework.boot.env.EnvironmentPostProcessorApplicationListener.onApplicationEvent(EnvironmentPostProcessorApplicationListener.java:86) ~[spring-boot-2.4.6.jar:2.4.6]
at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:176) ~[spring-context-5.3.7.jar:5.3.7]
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:169) ~[spring-context-5.3.7.jar:5.3.7]
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143) ~[spring-context-5.3.7.jar:5.3.7]
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:131) ~[spring-context-5.3.7.jar:5.3.7]
at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:82) ~[spring-boot-2.4.6.jar:2.4.6]
at org.springframework.boot.SpringApplicationRunListeners.lambda$environmentPrepared$2(SpringApplicationRunListeners.java:63) ~[spring-boot-2.4.6.jar:2.4.6]
at java.base/java.util.ArrayList.forEach(ArrayList.java:1540) ~[na:na]
at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:117) ~[spring-boot-2.4.6.jar:2.4.6]
at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:111) ~[spring-boot-2.4.6.jar:2.4.6]
at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:62) ~[spring-boot-2.4.6.jar:2.4.6]
at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:375) ~[spring-boot-2.4.6.jar:2.4.6]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:333) ~[spring-boot-2.4.6.jar:2.4.6]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1329) ~[spring-boot-2.4.6.jar:2.4.6]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1318) ~[spring-boot-2.4.6.jar:2.4.6]
at com.example.sd24.Sd24Application.main(Sd24Application.java:10) ~[classes/:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) ~[spring-boot-devtools-2.4.6.jar:2.4.6]
2021-06-02 11:25:18.965 INFO 8492 --- [ restartedMain] o.s.b.context.config.ConfigDataLoader : Fetching config from server at : http://localhost:8888
2021-06-02 11:25:18.965 INFO 8492 --- [ restartedMain] o.s.b.context.config.ConfigDataLoader : Connect Timeout Exception on Url - http://localhost:8888. Will be trying the next url if available
2021-06-02 11:25:18.965 WARN 8492 --- [ restartedMain] o.s.b.context.config.ConfigDataLoader : Could not locate PropertySource ([ConfigServerConfigDataResource@2746446e uris = array<String>['http://localhost:8888'], optional = true, profiles = list['default']]): I/O error on GET request for "http://localhost:8888/application/default/dev": Connection refused: connect; nested exception is java.net.ConnectException: Connection refused: connect
2021-06-02 11:25:18.967 INFO 8492 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable
2021-06-02 11:25:18.967 INFO 8492 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'
2021-06-02 11:25:20.861 INFO 8492 --- [ restartedMain] o.s.cloud.context.scope.GenericScope : BeanFactory id=3f0f7669-ed8a-3616-99cb-694fbe5627c0
2021-06-02 11:25:21.670 INFO 8492 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8585 (http)
2021-06-02 11:25:21.716 INFO 8492 --- [ restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2021-06-02 11:25:21.717 INFO 8492 --- [ restartedMain] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.46]
2021-06-02 11:25:21.982 INFO 8492 --- [ restartedMain] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2021-06-02 11:25:21.983 INFO 8492 --- [ restartedMain] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 3015 ms
2021-06-02 11:25:22.758 INFO 8492 --- [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729
2021-06-02 11:25:23.450 INFO 8492 --- [ restartedMain] DiscoveryClientOptionalArgsConfiguration : Eureka HTTP Client uses RestTemplate.
2021-06-02 11:25:24.026 WARN 8492 --- [ restartedMain] iguration$LoadBalancerCaffeineWarnLogger : Spring Cloud LoadBalancer is currently working with the default cache. You can switch to using Caffeine cache, by adding it and org.springframework.cache.caffeine.CaffeineCacheManager to the classpath.
2021-06-02 11:25:24.114 INFO 8492 --- [ restartedMain] o.s.c.n.eureka.InstanceInfoFactory : Setting initial instance status as: STARTING
2021-06-02 11:25:24.167 INFO 8492 --- [ restartedMain] com.netflix.discovery.DiscoveryClient : Initializing Eureka in region us-east-1
2021-06-02 11:25:24.174 INFO 8492 --- [ restartedMain] c.n.d.s.r.aws.ConfigClusterResolver : Resolving eureka endpoints via configuration
2021-06-02 11:25:24.207 INFO 8492 --- [ restartedMain] com.netflix.discovery.DiscoveryClient : Disable delta property : false
2021-06-02 11:25:24.208 INFO 8492 --- [ restartedMain] com.netflix.discovery.DiscoveryClient : Single vip registry refresh property : null
2021-06-02 11:25:24.208 INFO 8492 --- [ restartedMain] com.netflix.discovery.DiscoveryClient : Force full registry fetch : false
2021-06-02 11:25:24.208 INFO 8492 --- [ restartedMain] com.netflix.discovery.DiscoveryClient : Application is null : false
2021-06-02 11:25:24.208 INFO 8492 --- [ restartedMain] com.netflix.discovery.DiscoveryClient : Registered Applications size is zero : true
2021-06-02 11:25:24.208 INFO 8492 --- [ restartedMain] com.netflix.discovery.DiscoveryClient : Application version is -1: true
2021-06-02 11:25:24.208 INFO 8492 --- [ restartedMain] com.netflix.discovery.DiscoveryClient : Getting all instance registry info from the eureka server
2021-06-02 11:25:24.327 INFO 8492 --- [ restartedMain] com.netflix.discovery.DiscoveryClient : The response status is 200
2021-06-02 11:25:24.333 INFO 8492 --- [ restartedMain] com.netflix.discovery.DiscoveryClient : Starting heartbeat executor: renew interval is: 30
2021-06-02 11:25:24.338 INFO 8492 --- [ restartedMain] c.n.discovery.InstanceInfoReplicator : InstanceInfoReplicator onDemand update allowed rate per min is 4
2021-06-02 11:25:24.347 INFO 8492 --- [ restartedMain] com.netflix.discovery.DiscoveryClient : Discovery Client initialized at timestamp 1622625924346 with initial instances count: 13
2021-06-02 11:25:24.350 INFO 8492 --- [ restartedMain] o.s.c.n.e.s.EurekaServiceRegistry : Registering application UNKNOWN with eureka with status UP
2021-06-02 11:25:24.352 INFO 8492 --- [ restartedMain] com.netflix.discovery.DiscoveryClient : Saw local status change event StatusChangeEvent [timestamp=1622625924352, current=UP, previous=STARTING]
2021-06-02 11:25:24.356 INFO 8492 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient : DiscoveryClient_UNKNOWN/EFR00491.fr01.awl.atosorigin.net:8585: registering service...
2021-06-02 11:25:24.412 INFO 8492 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8585 (http) with context path ''
2021-06-02 11:25:24.414 INFO 8492 --- [ restartedMain] .s.c.n.e.s.EurekaAutoServiceRegistration : Updating port to 8585
2021-06-02 11:25:25.311 INFO 8492 --- [ restartedMain] com.example.sd24.Sd24Application : Started Sd24Application in 11.312 seconds (JVM running for 14.523)
I don't think it's a good solution. What do you thinnk ?
Comment From: ryanjbaxter
If you set spring.cloud.config.fail-fast=true
I think you will get the behavior you desire.
Comment From: edethoor
You are right. With this properties we have the desired behaviour.
Maybe it should be a good point to add some information in the documentation about the usage of serviceDiscovery and the fact that we must use the optional:
notion in the import directive.
Thank's for you're help @ryanjbaxter.
Comment From: ryanjbaxter
That is already called out https://docs.spring.io/spring-cloud-config/docs/current/reference/html/#discovery-first-bootstrap
Comment From: edethoor
I have already read this documentation but it's not explicit that the optional
part of the import directive is mandatory.
Comment From: ryanjbaxter
I added some wording saying that you need optional