Привод / обновление не предоставляется в SpringBoot 2.0.1

Я создаю демонстрационный проект для Spring-Config-Server а также Spring-Config-Client,

В SpringBoot 1.5.6.RELEASE все работает нормально.

Тем не менее, когда я обновляю проект до 2.0.1.RELEASE он не обеспечивает конечные точки привода.


Конечная точка привода указана в 1.5.6. ВЫПУСК

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. ВЫПУСК

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

pom.xml: 2.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 Пом это версия и spring-cloud.version = Dalston.SR2

Может ли кто-нибудь помочь, пожалуйста?

6 ответов

Решение

После небольшого исследования я нашел причину, по которой конечные точки не отображаются в Spring Boot 2.0 согласно документам

По умолчанию все конечные точки, кроме выключения, включены

Итак, нам нужно включить их вручную.

я добавил management.endpoints.web.exposure.include=* в application.properties файл и теперь все конечные точки вернулись.

Примечание: если вы используете .yml убедитесь, что используете "*" не *

refresh конечную точку можно включить для использования через Интернет (через Интернет), используя это в application.yaml

management.endpoints.web.exposure.include: health,info,refresh

Spring Boot позволяет health а также infoконечные точки по умолчанию. Их необходимо перечислить, чтобы они оставались включенными.

Если ваше приложение имеет URL-адрес http://localhost:8181/

Ты можешь отправить POST просьба обновить

http: // локальный: 8181 / привод / обновление

Экспозиция конечных точек по HTTP теперь настраивается с помощью свойств

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

Вы можете выставить конечные точки по идентификатору, указанному Actuator.

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

Даже после добавления строки, приведенной ниже, иногда не помогает management.endpoints.web.exposure.include=*

Попробуйте это:- Обновление работает по методу OPTIONS, а не по методу POST в некоторых случаях.

Это то, что я сделал. Включены все конечные точки, установив

      management.endpoints.web.exposure.include=*

И отправил пустой запрос на обновление конечной точки.

      curl -d '{}' -H 'Content-Type: application/json' http://localhost:8000/actuator/refresh

URL-адрес http://localhost:8000/actuator/ содержит список всех доступных конечных точек.

PS: Мое приложение работает на порту 8000. На порту 8080 по умолчанию я запускаю сервер конфигурации.

Чтобы включить обновление, добавьте следующие свойства в файл свойств приложения.

      management.endpoints.web.exposure.include=health,info,refresh 
management.endpoint.refresh.enabled=true
Другие вопросы по тегам