2017-10-02 14 views
0

스프링 클라우드 Netflix OSS를 사용하는 스프링 부트 응용 프로그램을 거의 배치하지 않았으며 Spring 부트 관리자를 구성하여 유레카 서버에 연결하는 응용 프로그램을 모니터링했습니다. 그러나 두 가지 응용 프로그램에 대해서는 오류가 발생합니다. 이 오류의 원인이 될 수있는 점과이를 완화하는 방법을 알려주십시오.스프링 부트 관리자 상태 검사 중 잘못된 문자

이 엔드 포인트 건강 URL이 봄 부팅 액추에이터와 히스 URL의 출력에 의해 제공된다 로그에 {"description":"Spring Cloud Eureka Discovery Client","status":"UP"}

오류입니다

URL의 끝에 여분의 공간이 있었다
2017-10-02 18:29:31.790 ERROR 5976 --- [DiscoveryClient-CacheRefreshExecutor-0] d.c.b.a.d.ApplicationDiscoveryListener : Couldn't register application for service org.springframework.c[email protected]3e988b86 

java.lang.IllegalArgumentException: Illegal character in path at index 61: http://xxxx:56412/manage/health 
    at java.net.URI.create(URI.java:852) ~[na:1.8.0_131] 
    at de.codecentric.boot.admin.discovery.EurekaServiceInstanceConverter.getHealthUrl(EurekaServiceInstanceConverter.java:46) ~[spring-boot-admin-server-1.5.0.jar!/:1.5.0] 
    at de.codecentric.boot.admin.discovery.DefaultServiceInstanceConverter.convert(DefaultServiceInstanceConverter.java:64) ~[spring-boot-admin-server-1.5.0.jar!/:1.5.0] 
    at de.codecentric.boot.admin.discovery.ApplicationDiscoveryListener.register(ApplicationDiscoveryListener.java:138) [spring-boot-admin-server-1.5.0.jar!/:1.5.0] 
    at de.codecentric.boot.admin.discovery.ApplicationDiscoveryListener.discover(ApplicationDiscoveryListener.java:94) [spring-boot-admin-server-1.5.0.jar!/:1.5.0] 
    at de.codecentric.boot.admin.discovery.ApplicationDiscoveryListener.discoverIfNeeded(ApplicationDiscoveryListener.java:85) [spring-boot-admin-server-1.5.0.jar!/:1.5.0] 
    at de.codecentric.boot.admin.discovery.ApplicationDiscoveryListener.onApplicationEvent(ApplicationDiscoveryListener.java:80) [spring-boot-admin-server-1.5.0.jar!/:1.5.0] 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_131] 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_131] 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_131] 
    at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_131] 
    at org.springframework.context.event.ApplicationListenerMethodAdapter.doInvoke(ApplicationListenerMethodAdapter.java:253) [spring-context-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 
    at org.springframework.context.event.ApplicationListenerMethodAdapter.processEvent(ApplicationListenerMethodAdapter.java:174) [spring-context-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 
    at org.springframework.context.event.ApplicationListenerMethodAdapter.onApplicationEvent(ApplicationListenerMethodAdapter.java:137) [spring-context-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 
    at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:167) [spring-context-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139) [spring-context-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 
    at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:393) [spring-context-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 
    at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:347) [spring-context-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 
    at org.springframework.cloud.netflix.eureka.CloudEurekaClient.onCacheRefreshed(CloudEurekaClient.java:98) [spring-cloud-netflix-eureka-client-1.3.1.RELEASE.jar!/:1.3.1.RELEASE] 
    at com.netflix.discovery.DiscoveryClient.fetchRegistry(DiscoveryClient.java:943) [eureka-client-1.6.2.jar!/:1.6.2] 
    at com.netflix.discovery.DiscoveryClient.refreshRegistry(DiscoveryClient.java:1451) [eureka-client-1.6.2.jar!/:1.6.2] 
    at com.netflix.discovery.DiscoveryClient$CacheRefreshThread.run(DiscoveryClient.java:1418) [eureka-client-1.6.2.jar!/:1.6.2] 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_131] 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_131] 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_131] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_131] 
    at java.lang.Thread.run(Thread.java:748) [na:1.8.0_131] 
Caused by: java.net.URISyntaxException: Illegal character in path at index 61: http://xxxxx:56412/manage/health 
    at java.net.URI$Parser.fail(URI.java:2848) ~[na:1.8.0_131] 
    at java.net.URI$Parser.checkChars(URI.java:3021) ~[na:1.8.0_131] 
    at java.net.URI$Parser.parseHierarchical(URI.java:3105) ~[na:1.8.0_131] 
    at java.net.URI$Parser.parse(URI.java:3053) ~[na:1.8.0_131] 
    at java.net.URI.<init>(URI.java:588) ~[na:1.8.0_131] 
    at java.net.URI.create(URI.java:850) ~[na:1.8.0_131] 
    ... 26 common frames omitted 
+1

헬스 경로에 후행 공백이있는 것처럼 보입니다 ... – joshiste

+0

하지만이 액추에이터가 생성되었습니다. 어떻게 완화시킬 수 있습니까? – Debopam

답변

0

eureka.instance.healthCheckUrlPath=${management.context-path}/health 

이 있어야한다

eureka.instance.healthCheckUrlPath=${management.context-path}/health