actuator /refresh is not being provided in SpringBoot 2.0.1

27,257

Solution 1

After a bit of research, I have found the cause why the endpoints are not shown in Spring Boot 2.0 is as per docs

By default, all endpoints except for shutdown are enabled

so, we need to enable them manually.

I have added management.endpoints.web.exposure.include=* in application.properties file and now all the endpoints are back.

Note: If you are using .yml make sure to use "*" not *

Solution 2

Exposure of endpoints on HTTP is now configurable by using properties

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

You can expose endpoints by there ID mentioned by Actuator.

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

Solution 3

Even after adding the below line, wont help sometimes management.endpoints.web.exposure.include=*

Try this:- Refresh works on OPTIONS method, not with POST method for few cases.

enter image description here

Solution 4

refresh endpoint can be enabled to use via web (exposed via web), using this in application.yaml

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

Spring Boot enables health and info endpoints by default. It is necessary to list them to keep them enabled.

If your application has this URL http://localhost:8181

You can send POST request to refresh

http://localhost:8181/actuator/refresh

Share:
27,257
Mehraj Malik
Author by

Mehraj Malik

Updated on January 06, 2021

Comments

  • Mehraj Malik
    Mehraj Malik over 3 years

    I am creating a demo project for Spring-Config-Server and Spring-Config-Client.

    In SpringBoot 1.5.6.RELEASE everything is working fine.

    However, when I am upgrading project to 2.0.1.RELEASE it does not provide the actuator endpoints.


    Actuator endpoint provided in 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
    

    Actuator endpoint provided in 2.0.1.RELEASE

    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>
    

    The only difference bw 1.5.6 pom is version and spring-cloud.version = Dalston.SR2

    Could someone please help?

  • filpa
    filpa almost 6 years
    Hm, that's really weird. The docs state that the endpoints are enabled by default, which was definitely not the case for me (and it seems for you too!). Perhaps the docs are wrong?
  • user1918305
    user1918305 over 5 years
    You need to understand the difference between enabled and exposed via web endpoint. Enabled endpoint is not necessarily exposed via web. Currently by default most endpoints are enabled. Most of them are also exposed via JMX, but only "info" and "health" are exposed via web (http). Documentation clearly states all of this if you read it.
  • Satish Patro
    Satish Patro almost 4 years
    options mainly give 200. But, it works for POST only, are you sure it overrided values?
  • Sanjay Naik
    Sanjay Naik about 3 years
    does ur application restart when u hit localhost:8181/actuator/refresh ?
  • v.ladynev
    v.ladynev about 3 years
    @SanjayNaik No. Context restarts.
  • Mehraj Malik
    Mehraj Malik about 2 years
    @user1918305 I have updated my answer. Thanks for your suggestion