运行config-client时遇到错误..简单的事情直接来自弹簧指南不起作用。
2017-08-18 13:44:31.194 ERROR 12548 --- [ main] o.s.boot.SpringApplication : Application startup failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scopedTarget.restController': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'message' in value "${message}"
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:372) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1264) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.sprin
RestController
@RefreshScope
@org.springframework.web.bind.annotation.RestController
public class RestController {
@Value("${message}")
private String message;
@RequestMapping("/message")
String getMessage() {
return this.message;
}
}
bootstrap.yml of config-client
spring:
application:
name: config-client
cloud:
config:
uri: http://localhost:8888
management:
security:
enabled: false
application.yml of config-server
spring:
application:
name: config-server
cloud:
config:
server:
git:
uri: https://github.com/config-properties
server:
port: 8888
来自config-client服务的日志
启动ApplicationContext时出错。要显示自动配置报告,请使用' debug'重新运行您的应用程序。启用。 2017-08-18 23:13:45.080 ERROR 13812 --- [main] o.s.boot.SpringApplication:应用程序启动失败
org.springframework.beans.factory.BeanCreationException:使用名称' scopedTarget.restController创建bean时出错&#39 ;:注入自动连接的依赖项失败;嵌套异常是java.lang.IllegalArgumentException:无法解析占位符' message'价值" $ {message}" 在org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:372)〜[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1264)〜[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)〜[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)〜[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在org.springframework.beans.factory.support.AbstractBeanFactory $ 2.getObject(AbstractBeanFactory.java:345)〜[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在org.springframework.cloud.context.scope.GenericScope $ BeanLifecycleWrapper.getBean(GenericScope.java:359)〜[spring-cloud-context-1.2.3.RELEASE.jar:1.2.3.RELEASE] 在org.springframework.cloud.context.scope.GenericScope.get(GenericScope.java:176)〜[spring-cloud-context-1.2.3.RELEASE.jar:1.2.3.RELEASE] 在org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:340)〜[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)〜[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1078)〜[spring-context-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在org.springframework.cloud.context.scope.refresh.RefreshScope.start(RefreshScope.java:121)〜[spring-cloud-context-1.2.3.RELEASE.jar:1.2.3.RELEASE] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)〜[na:1.8.0_144] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)〜[na:1.8.0_144] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)〜[na:1.8.0_144] 在java.lang.reflect.Method.invoke(Method.java:498)〜[na:1.8.0_144] 在org.springframework.context.event.ApplicationListenerMethodAdapter.doInvoke(ApplicationListenerMethodAdapter.java:256)〜[spring-context-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在org.springframework.context.event.ApplicationListenerMethodAdapter.processEvent(ApplicationListenerMethodAdapter.java:177)〜[spring-context-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在org.springframework.context.event.ApplicationListenerMethodAdapter.onApplicationEvent(ApplicationListenerMethodAdapter.java:140)〜[spring-context-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:167)〜[spring-context-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)〜[spring-context-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:393)〜[spring-context-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:347)〜[spring-context-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:883)〜[spring-context-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:144)〜[spring-boot-1.5.6.RELEASE.jar:1.5.6.RELEASE] 在org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546)〜[spring-context-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)〜[spring-boot-1.5.6.RELEASE.jar:1.5.6.RELEASE] 在org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693)[spring-boot-1.5.6.RELEASE.jar:1.5.6.RELEASE] 在org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360)[spring-boot-1.5.6.RELEASE.jar:1.5.6.RELEASE] 在org.springframework.boot.SpringApplication.run(SpringApplication.java:303)[spring-boot-1.5.6.RELEASE.jar:1.5.6.RELEASE] 在org.springframework.boot.SpringApplication.run(SpringApplication.java:1118)[spring-boot-1.5.6.RELEASE.jar:1.5.6.RELEASE] 在org.springframework.boot.SpringApplication.run(SpringApplication.java:1107)[spring-boot-1.5.6.RELEASE.jar:1.5.6.RELEASE] 在com.demo.ConfigClientApplication.main(ConfigClientApplication.java:9)[classes /:na] 引起:java.lang.IllegalArgumentException:无法解析占位符'消息'价值" $ {message}" 在org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:174)〜[spring-core-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:126)〜[spring-core-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在org.springframework.core.env.AbstractPropertyResolver.doResolvePlaceholders(AbstractPropertyResolver.java:236)〜[spring-core-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在org.springframework.core.env.AbstractPropertyResolver.resolveRequiredPlaceholders(AbstractPropertyResolver.java:210)〜[spring-core-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在org.springframework.context.support.PropertySourcesPlaceholderConfigurer $ 2.resolveStringValue(PropertySourcesPlaceholderConfigurer.java:172)〜[spring-context-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在org.springframework.beans.factory.support.AbstractBeanFactory.resolveEmbeddedValue(AbstractBeanFactory.java:831)〜[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1086)〜[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066)〜[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)〜[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)〜[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366)〜[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE] ...省略了31个常见帧
与目标虚拟机断开连接,地址:' 127.0.0.1:59908',传输:' socket'
答案 0 :(得分:0)
确保GIT URI有效,它应该是https://github.com/userName/repositoryName 然后将您的配置文件夹推送到repositoryName。
示例:https://github.com/PraveenKumarMekala/Microservices-With-Spring-Example
这里我有一个名为ConfigData的文件夹,我放置了所有的yml文件。你应该有一个带有config-client.yml文件的文件夹(yml文件名应该与你的应用程序名相同,因为你没有提到任何配置文件)在您的客户端yml文件中,它将使用您的应用程序名称回退到您的默认配置文件)
您的yml文件应如下所示
<强>配置-client.yml 强>
this.test = "<p>bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbgggggggggggggggggggggggggggggggggg</p>"
config-client.yml文件应该放在你的git repo中。
config-client的bootstrap.yml
---
message : Hello World!
注意:如果你提到profileName,那么yml文件名应为 config-client-profileName.yml
config.server的application.yml
---
spring:
profiles:
active: profileName
application:
name: config-client
cloud:
config:
uri: http://localhost:8887
server:
port: 8888
进行此更改并尝试,希望它有用。
PS:如果您没有git帐户,请创建一个帐户,然后创建存储库
答案 1 :(得分:0)
也许由
config-client的bootstrap.yml
spring:
profiles:
active: profileName
application:
name: config-client
cloud:
config:
uri: http://localhost:8888
server:
port: 8887