2016-07-22 54 views
2

我現在面臨跌破發行,而我嘗試運行我的春節,雲配置客戶端:春雲配置客戶端不加載從配置服務器值

Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'DATABASE_NAME' in string value "${DATABASE_NAME}" 
    at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:174) 
    at org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:126) 
    at org.springframework.core.env.AbstractPropertyResolver.doResolvePlaceholders(AbstractPropertyResolver.java:204 

我依賴於的pom.xml情況如下:

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.3.6.RELEASE</version> 
    <relativePath/> <!-- lookup parent from repository --> 
</parent> 

<dependencyManagement> 
    <dependencies> 

     <dependency> 
      <groupId>org.springframework.cloud</groupId> 
      <artifactId>spring-cloud-config</artifactId> 
      <version>1.1.1.RELEASE</version> 
      <type>pom</type> 
      <scope>import</scope> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.cloud</groupId> 
      <artifactId>spring-cloud-dependencies</artifactId> 
      <version>Brixton.SR3</version> 
      <type>pom</type> 
      <scope>import</scope> 
     </dependency> 

    </dependencies> 
</dependencyManagement> 

<dependencies> 

    <dependency> 
     <groupId>org.springframework.cloud</groupId> 
     <artifactId>spring-cloud-starter-config</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-actuator</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-test</artifactId> 
     <scope>test</scope> 
    </dependency> 

</dependencies> 

bootstrap.yml

spring: 
application: 
name: my-config-client 
cloud: 
services: 
    registrationMethod: route 
config: 
    enabled: true 
    uri: http://localhost:${config.port:8888} 

application.yml是如下:

# HTTP Server 
server: 
port: 2222 

# Spring properties 
spring: 
    profiles: 
    active: dev 

#Disable HTTP Basic Authentication 
security: 
    basic: 
    enabled: false 

在那裏我試圖訪問該屬性的類是如下:

@RefreshScope 
@Component 
public class MyProperty { 

    @Value("${DATABASE_NAME}") 
    private String databaseName; 


    public String getDatabaseName() { 
     return databaseName; 
    } 
} 

我的配置服務器運行良好。當我使用這個網址在瀏覽器http://localhost:8888/configserver/dev,它提供了以下結果:

{ 
    "name":"configserver", 
    "profiles":[ 
     "dev" 
    ], 
    "label":"master", 
    "version":"c991526a93fb776e37e18e138c7485d894d6ea4f", 
    "propertySources":[ 
     { 
     "name":"https://onestash.abc.com/scm/kapmol/microservice-config-repo.git/configserver.properties", 
     "source":{ 
      "DATABASE_NAME":"ABC", 
      "CONVERT_USERS":"Y", 
      "LRDS_JNDI_NAME":"jdbc/tds_new" 
     } 
     } 
    ] 
} 

我試圖與所有誰面臨這個問題的帖子。但是,它不適合我。可能是,我錯過了一些觀點。如果有人能提供幫助,那會很好。

感謝

回答

1

我提到this post通過「spencergibb」,並能解決這個問題的回答。我在客戶端應用程序的bootstrap.yml文件中添加了「spring.config.name」並解決了問題。現在,我的bootstrap.yml看起來如下:從:

spring: 
    application: 
    name: my-config-client 
    cloud: 
    services: 
     registrationMethod: route 
    config: 
    name: configserver 
    enabled: true 
    uri: http://localhost:${config.port:8888} 
+0

你在哪裏得到 「$ {8888} config.port」 – Jesse

相關問題