簡體   English   中英

Spring-Cloud配置服務器忽略配置屬性文件

[英]Spring-Cloud configuration server ignores configuration properties file

我正在嘗試創建一個Spring Cloud配置服務器,它從屬性文件而不是github讀取配置數據。 服務器啟動,但不提供文件中的屬性。 我在classpapath上有兩個配置文件:

bootstrap.yml

spring:
application:
    name: config-server

config-server.properties

foo=bar

當我去url,據說應該給我foo屬性的值:

curl  http://localhost:8888/admin/env/foo

我收到一個錯誤:“timestamp”:1415298615005,“status”:404,“error”:“Not Found”,“exception”:“org.springframework.boot.actuate.endpoint.mvc.EnvironmentMvcEndpoint $ NoSuchPropertyException”,“message “:”沒有這樣的屬性:foo“,”path“:”/ admin / env / foo“}

我想知道我做錯了什么? 據我所知,屬性文件名應與服務器名稱匹配,以便服務器識別。


添加原生配置文件作為spencergibb建議沒有幫助。 我的application.properties看起來像:

server.port=8888
spring.profiles.active=native
spring.config.name=configserver
spring.application.name=configserver

注意,我必須指定服務器端口。 根據Spring Cloud Config Server文檔,配置服務器默認在端口8888上啟動。 在我的情況下,除非我在配置中指定端口,否則服務器從8080開始。

POM文件沒有父級和單個依賴項:

    <dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-config-server</artifactId>
        <version>1.0.0.M2</version>
    </dependency>
</dependencies>

該應用程序沒有什么特別之處:

@Configuration
@ComponentScan
@EnableAutoConfiguration
@EnableConfigServer
public class ConfigurationApp {
    public static void main(String[] args) {
        SpringApplication.run(ConfigurationApp.class, args);
    }
}

configserver.properties文件包含一個條目:foo = bar

首先,我總是遇到啟動錯誤

2014-11-07 09:35:42.852 ERROR 6972 --- [           main] b.c.PropertySourceBootstrapConfiguration : Could not locate PropertySource: I/O error on GET request for "http://localhost:8888/configserver/default/master":Connection refused: connect; nested exception is java.net.ConnectException: Connection refused: connect

無論我執行哪個命令,我總是從服務器獲得相同的響應:

{"name":"info","label":"master","propertySources":[{"name":"bootstrap","source":{}},{"name":"applicationConfig: [classpath:/application.properties]","source":{"spring.config.name":"configserver","spring.application.name":"configserver","server.port":"8888","spring.profiles.active":"native"}},{"name":"defaultProperties","source":{"spring.application.name":"bootstrap"}}]}

我試過了:

http://localhost:8888/configserver/env
http://localhost:8888/configserver/env/foo
http://localhost:8888/configserver/info
http://localhost:8888/configserver/beans
http://localhost:8888/configserver/health

響應總是如上所述

默認情況下,配置服務器從git提供屬性。 您將需要配置文件設置為native使用--spring.profiles.active=native的configserver服務於春季環境。 配置服務器的spring.config.name以編程方式設置為spring.config.name=configserver因此您的屬性文件需要是configserver.properties。

配置服務器中的“/ admin / env”端點僅服務於服務器本身的本地配置。 服務器通常只是一個常規的Spring Boot應用程序,因此它從“application.properties”獲取其配置。 如果你想從“config-server.properties”中選擇它,你需要設置“spring.config.name”或“spring.config.location”(就像普通的Boot應用程序一樣)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM