[英]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.