问题:configserver 可以正常work,client 通过 @Value 无法从server中获取需要的值
configserver代码:
application.properties
management.security.enabled=false
server.port=8888
spring.cloud.config.server.git.uri=https://github.com/pangjianhui/my-config-2
ConfigServerApplication.java
@SpringBootApplication
@EnableConfigServer
public class ConfigServerApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigServerApplication.class, args);
}
}
build.gradle
buildscript {
ext {
springBootVersion = '1.5.2.RELEASE'
}
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
ext {
springCloudVersion = 'Dalston.SR2'
}
dependencies {
compile('org.springframework.cloud:spring-cloud-config-server')
compile('org.tmatesoft.svnkit:svnkit')
testCompile('org.springframework.boot:spring-boot-starter-test')
}
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:Camden.SR5"
}
}
server 可以正常工作,http://localhost:8888/my-config/test 可以看到返回的内容
{"name":"my-config","profiles":["test"],"label":"master","version":"3d39d7611569de7c6935ae9372965efda6ae9161","state":null,"propertySources":[{"name":"https://github.com/pangjianhui/my-config-2/my-config-test.yml","source":{"myapp.name":"pangjianhui"}}]}
client端
bootstrap.properties
spring.application.name=my-config-test
spring.cloud.config.uri=http://localhost:8888
management.security.enabled=false
build.gradle
buildscript {
ext { springBootVersion = '1.5.2.RELEASE' }
repositories { mavenCentral() }
dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") }
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
jar {
baseName = 'configuration-client'
version = '0.0.1-SNAPSHOT'
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories { mavenCentral() }
dependencies {
compile('org.springframework.cloud:spring-cloud-starter-config')
compile('org.springframework.boot:spring-boot-starter-actuator')
compile('org.springframework.boot:spring-boot-starter-web')
testCompile('org.springframework.boot:spring-boot-starter-test')
}
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:Camden.SR5"
}
}
ConfigClientApplication.java
@SpringBootApplication
public class ConfigClientApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigClientApplication.class, args);
}
}
@RefreshScope
@RestController
class MessageRestController {
@Value("${myapp.name}")
private String message;
@RequestMapping("/message")
String getMessage() {
return this.message;
}
}
client 启动时一直报错:java.lang.IllegalArgumentException: Could not resolve placeholder 'myapp.name' in value "${myapp.name}"
还请各位大虾帮忙看看到底是咋回事,多谢。
7 个解决方案
#1
哎。。才看到Zuul,还没看到这里。。。顶起。。。
#2
java.lang.IllegalArgumentException: Could not resolve placeholder 'myapp.name' in value "${myapp.name}"。。。
看报错是注入的问题。。检查一下配置文件是否有myapp.name这个key
看报错是注入的问题。。检查一下配置文件是否有myapp.name这个key
#3
有key
#4
key 是有的,server 是好的,server 无论是配置 svn 还是 git 都可以。
#5
已解决。还是 server 的问题,晕。server 换了个端口号就可以了。
#6
为什么换个端口就可以了?
#7
为什么换端口就可以了? 这不科学啊
#1
哎。。才看到Zuul,还没看到这里。。。顶起。。。
#2
java.lang.IllegalArgumentException: Could not resolve placeholder 'myapp.name' in value "${myapp.name}"。。。
看报错是注入的问题。。检查一下配置文件是否有myapp.name这个key
看报错是注入的问题。。检查一下配置文件是否有myapp.name这个key
#3
有key
#4
key 是有的,server 是好的,server 无论是配置 svn 还是 git 都可以。
#5
已解决。还是 server 的问题,晕。server 换了个端口号就可以了。
#6
为什么换个端口就可以了?
#7
为什么换端口就可以了? 这不科学啊