6

github ではなく、プロパティ ファイルから構成データを読み取る Spring Cloud 構成サーバーを作成しようとしています。サーバーは起動しますが、ファイルからプロパティを提供しません。classpapath に 2 つの構成ファイルがあります。

ブートストラップ.yml

spring:
application:
    name: config-server

config-server.properties

foo=bar

foo プロパティの値が表示されるはずの URL に移動すると、次のようになります。

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 ファイルには親がなく、1 つの依存関係があります。

    <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

応答は常に上記のとおりです

4

2 に答える 2

1

構成サーバーの「/admin/env」エンドポイントは、サーバー自体のローカル構成のみを提供します。サーバーは通常、通常の Spring Boot アプリであるため、「application.properties」から構成を取得します。「config-server.properties」から取得する場合は、「spring.config.name」または「spring.config.location」を設定する必要があります (通常の Boot アプリと同様)。

于 2014-11-07T08:11:23.787 に答える