Сервер конфигурации Spring-Cloud игнорирует файл свойств конфигурации

Я пытаюсь создать сервер конфигурации 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

Я получаю сообщение об ошибке: "отметка времени":1415298615005,"состояние":404,"ошибка": "не найдено","исключение":"org.springframework.boot.actuate.endpoint.mvc.EnvironmentMvcEndpoint$NoSuchPropertyException","сообщение ":" Нет такого свойства: 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

Ответ всегда как выше

2 ответа

По умолчанию сервер конфигурации обслуживает свойства из git. Вам нужно будет установить профиль native с помощью --spring.profiles.active=native для сервера конфигурации для обслуживания среды Spring. spring.config.name для сервера конфигурации программно установлено spring.config.name=configserver поэтому ваш файл свойств должен быть configserver.properties.

Конечная точка "/admin/env" на сервере конфигурации обслуживает только локальную конфигурацию самого сервера. Сервер обычно является обычным приложением Spring Boot, поэтому он получает свою конфигурацию из "application.properties". Если вы хотите получить его из "config-server.properties", вам нужно установить "spring.config.name" или "spring.config.location" (как обычное загрузочное приложение).

Другие вопросы по тегам