2017-10-25 10 views
0

이름 자리 표시 자 :FeignClient 나는 나는이 한 나의 <code>application.yml</code> 파일에서로드 할 이름의 FeignClient 인터페이스를 가지고

@FeignClient(name = "${edgeServer}", configuration = BeansConfiguration.class) 

그리고 내 yml 파일 :

edgeServer: edge-server 

하지만를 런타임시 예외가 발생합니다.

java.lang.IllegalStateException : 서비스 ID가 유효하지 않은 호스트 이름 ($ {edgeServe r}) at org.springframework.util.Assert.state (Assert.java:70) ~ [spring-core-4.3.10.RELEASE.jar : 4.3.10.RELEASE] at org.springframework.cloud.netflix .feign.FeignClientsRegistrar.getName (FeignClientsRegistrar.java:238) ~ [spring-cloud-netflix-core-1.3.1.RELEASE.jar : 1.3.1.RELEASE] at org.springframework.cloud.netflix.feign.FeignClientsRegistrar .registerFeignClient (FeignClientsRegistrar.java:181) ~ [spring-cloud-netflix-core-1.3.1.RELEASE.jar : 1.3.1.RELEASE] at org.springframework.cloud.netflix.feign.FeignClientsRegistrar.registerFeignClients (FeignClientsRegistrar .java : 167) ~ [spring-cloud-netflix-core-1.3.1.RELEASE.jar : 1.3.1.RELEASE] at org.springframework.cloud.netflix.feign.FeignClientsRegistrar.registerBeanDefinitions (FeignClientsRegistrar.java:92) ~ [spring-cloud-netflix-core-1.3.1.RELEASE.jar : 1.3.1.RELEASE] org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsFromRegistrars (ConfigurationClassBeanDefinitionReader.java:359) ~ [spring-context-4.3.10.RELEASE.jar : 4.3.10.RELEASE] at org.springframework.context.annotation. ConfigurationClassBeanDefinitionReader.loadBeanDefinitionForConfigurationClass (ConfigurationClassBeanDefinitionReader.java:143) ~ [spring-context-4.3.10.RELEASE.jar : 4.3.10.RELEASE] at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions (ConfigurationClassBeanDefinitionReader.java:116) ~ [spring-context-4.3.10.RELEASE.jar : 4.3.10.RELEASE] at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions (ConfigurationClassPostProcessor.java:320) ~ [spring-context-4.3.10. RELEASE.jar : 4.3.10.RELEASE] at org.springframe org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors()에서 [ PostProcessorRegistrationDelegate.java:270) ~ [spring-context-4.3.10.RELEASE.jar : 4.3.10.RELEASE] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors (PostProcessorRegistrationDelegate.java:93) ~ [spring- context-4.3.10.RELEASE.jar : 4.3.10.RELEASE] at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors (AbstractApplicationContext.java:687) ~ [spring-context-4.3.10.RELEASE.jar : 4.3.10.RELEASE] at org.springframework.context.support.AbstractApplicationContext.refresh (AbstractApp licationContext.java:525) ~ [스프링 상황 4.3.10.RELEASE.jar는 : 4.3.10.RELEASE]

그래서 문제에 대한 해결책이, 다른 내가 할 수있는 방법 내 이름 속성은 주입 내 yml 속성에서?

감사

+0

오류를 재현하려고했지만 실패했지만 속성 주입이 작동합니다. BeansConfiguration을 보여줄 수 있습니까? 어쩌면 그것은 몇 가지 특정 속성을 가지고 있습니다. –

답변

0

이 작동합니다

@FeignClient(name = @Value("${edgeServer}"), configuration = BeansConfiguration.class) 

희망으로 라인

@FeignClient(name = "${edgeServer}", configuration = BeansConfiguration.class) 

업데이트.

0

클래스 상단에 @PropertySource("classpath:applciation.yml")을 추가 했습니까?