web-dev-qa-db-ja.com

アクチュエータ/リフレッシュは、Spring Boot 2.0.1では提供されていません

Spring-Config-ServerおよびSpring-Config-Clientのデモプロジェクトを作成しています。

SpringBoot 1.5.6.RELEASEでは、すべてが正常に機能しています。

ただし、プロジェクトを2.0.1.RELEASEにアップグレードすると、アクチュエータエンドポイントが提供されません。


1.5.6.RELEASEで提供されるアクチュエータエンドポイント

Mapped "{[/refresh || /refresh.json],methods=[POST]}"
Mapped "{[/dump || /dump.json],methods=[GET]
Mapped "{[/heapdump || /heapdump.json],methods=[GET]
Mapped "{[/autoconfig || /autoconfig.json],methods=[GET]
Mapped "{[/resume || /resume.json],methods=[POST]}"
Mapped "{[/configprops || /configprops.json],methods=[GET]
Mapped "{[/features || /features.json],methods=[GET]
Mapped "{[/loggers/{name:.*}],methods=[GET]
Mapped "{[/restart || /restart.json],methods=[POST]}"
...and many more

2.0.1.RELEASEで提供されるアクチュエータエンドポイント

Mapped "{[/actuator/health],methods=[GET]
Mapped "{[/actuator/info],methods=[GET]
Mapped "{[/actuator],methods=[GET]

pom.xml2.0.1.RELEASE

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

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <Java.version>1.8</Java.version>
        <spring-cloud.version>Finchley.RC1</spring-cloud.version>
    </properties>

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>

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

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>

唯一の違いbw 1.5.6 pomはversionとspring-cloud.version = Dalston.SR2です

誰か助けてくれますか?

5
Mehraj Malik

少し調査した結果、エンドポイントがSpring Boot 2.0に表示されない原因は ドキュメントによる です。

デフォルトでは、シャットダウンを除くすべてのエンドポイントが有効になっています

そのため、それらを手動で有効にする必要があります。

management.endpoints.web.exposure.include=*ファイルにapplication.propertiesを追加しましたが、すべてのエンドポイントが元に戻りました。

.ymlを使用している場合は、"*"ではなく*を使用してください

16
Mehraj Malik

以下の行を追加した後でも、時々management.endpoints.web.exposure.include = *を助けません

試してみてください:-リフレッシュは、POSTメソッドではなく、いくつかのケースではOPTIONSメソッドで機能します。

enter image description here

4

HTTP上のエンドポイントの公開は、プロパティを使用して構成可能になりました

management.endpoints.web.exposure.include
management.endpoints.web.exposure.exclude

アクチュエータによって言及されたIDによってエンドポイントを公開できます。

# Include all endpoints 
management.endpoints.web.exposure.include=*
# Exclude specifics 
management.endpoints.web.exposure.exclude=env
4
Mahesh Pardeshi