我们有一个spring-boot应用程序,它从配置服务器读取它的配置。
我在使用spring-cloud-configuration-server读取空属性时遇到了问题。
设置是一个KV对,在application.properties中没有值。 例如 的myKey =
加载它"常规"只使用一个文件没有问题。
但是当客户端使用配置服务器时,空值将导致:
" java.lang.IllegalArgumentException:无法解析占位符' MyKey'"。
在配置服务器中找我奇怪。 所以这是它的application.yml:
info:
version: '@project.version@'
artifact: '@project.artifactId@'
server:
port: 10805
spring:
application:
name: ${info.artifact}
http:
encoding:
charset: UTF-8
boot:
admin:
discovery:
enabled: true
context-path: /admin
jmx:
enabled: false
endpoints:
jmx:
enabled: false
turbine:
combineHostPort: true
app-config: service.us
clusterNameExpression: "'default'"
---
spring:
profiles: win
eureka:
server:
disable-delta: true
disable-delta-for-remote-regions: true
instance:
hostname: ${COMPUTERNAME}
client:
serviceUrl:
defaultZone: http://localhost:10805/eureka/
archaius:
deployment:
datacenter: ${eureka.instance.hostname}
environment: local
---
spring:
profiles: default
eureka:
instance:
virtual-host-name: ${eureka.instance.appname}
app-group-name: ces
appname: admin.ces
---
spring:
profiles:
active: subversion
cloud:
config:
server:
svn:
uri : https://myserver/svn/ces/trunk/config/
username: conf
password: ****
任何想法?
答案 0 :(得分:1)
我终于找到了问题。
配置服务器也可以驱动eureka服务器。 这种组合导致上述行为。
删除注释和依赖项
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
解决了这个问题。
因此,我们在同一个实例上运行这两种服务的想法目前无法实现。
二手版本:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.1.RELEASE</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.RS4</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>