Spring Boot Actuator Not Working

31,764

Solution 1

It looks like IntelliJ has made a mess of the classpath. Looking at the jars supplied with -classpath there's a lot of Spring Boot 1.0.2.RELEASE jars in there which doesn't match your pom.

The banner in the startup logs also shows that you're running Spring Boot 1.0.2.RELEASE:

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.0.2.RELEASE)

Convincing IntelliJ to use the right classpath, or running your application on the command line with mvn spring-boot:run should fix your problem, although I strongly suspect that you'll also need to add a dependency on spring-webmvc:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
</dependency>

Solution 2

As you want to get the health status via HTTP, you may want to add this dependency and have a try:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

Solution 3

The simplest answer is, rather than point the request to

http://127.0.0.1:8081/health

Point to

http://127.0.0.1:8081/actuator/health
Share:
31,764
James
Author by

James

Updated on January 29, 2021

Comments

  • James
    James over 3 years

    With the following pom dependencies:

        <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId> spring-boot-starter-parent</artifactId>
        <version>1.1.4.RELEASE</version>
        </parent>
    
        <groupId>test.actuator</groupId>
        <artifactId>actuator-load-testing-webapp</artifactId>
        <version>1.0.0-SNAPSHOT</version>
    
        <properties>
            <main.basedir>${basedir}/../..</main.basedir>
        </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-jetty</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-security</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    </project>
    

    The following application.properties file located at classpath root:

    management.address: 127.0.0.1
    management.port: 8081
    endpoints.shutdown.enabled: true
    security.require_ssl: false
    shell.ssh.enabled: false
    spring.jmx.enabled: false
    

    And the following application main/config:

    @Configuration
    @EnableAutoConfiguration
    @EnableConfigurationProperties
    @ComponentScan
    public class SampleJettyApplication {
    
        public static void main(String[] args) throws Exception {
            SpringApplication.run(SampleJettyApplication.class, args);
        }
    }
    

    I was expecting the management facilities to be available on 127.0.0.1:8081 i.e.

    http://127.0.0.1:8081/health
    

    But nothing loads on the endpoint, what have I done wrong?

    Updated: Startup logs

    /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/bin/java -Dorg.eclipse.jetty.servlet.Default.dirAllowed=true -Didea.launcher.port=7538 "-Didea.launcher.bin.path=/Applications/IntelliJ IDEA 13.app/bin" -Dfile.encoding=UTF-8 -classpath "/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/lib/ant-javafx.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/lib/dt.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/lib/javafx-doclet.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/lib/javafx-mx.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/lib/jconsole.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/lib/sa-jdi.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/lib/tools.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/deploy.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/htmlconverter.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/javaws.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/jfxrt.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/management-agent.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/plugin.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/ext/dnsns.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/ext/localedata.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/ext/sunec.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/ext/zipfs.jar:/Users/james.mchugh/Documents/workspaceGamesPlatform/core/actuator-parent/actuator-load-testing-webapp/target/classes:/Users/james.mchugh/.m2/repository/org/springframework/boot/spring-boot-starter/1.0.2.RELEASE/spring-boot-starter-1.0.2.RELEASE.jar:/Users/james.mchugh/.m2/repository/org/springframework/boot/spring-boot/1.0.2.RELEASE/spring-boot-1.0.2.RELEASE.jar:/Users/james.mchugh/.m2/repository/org/springframework/spring-core/4.0.3.RELEASE/spring-core-4.0.3.RELEASE.jar:/Users/james.mchugh/.m2/repository/org/springframework/spring-context/4.0.3.RELEASE/spring-context-4.0.3.RELEASE.jar:/Users/james.mchugh/.m2/repository/org/springframework/spring-aop/4.0.3.RELEASE/spring-aop-4.0.3.RELEASE.jar:/Users/james.mchugh/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar:/Users/james.mchugh/.m2/repository/org/springframework/spring-beans/4.0.3.RELEASE/spring-beans-4.0.3.RELEASE.jar:/Users/james.mchugh/.m2/repository/org/springframework/spring-expression/4.0.3.RELEASE/spring-expression-4.0.3.RELEASE.jar:/Users/james.mchugh/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/1.0.2.RELEASE/spring-boot-autoconfigure-1.0.2.RELEASE.jar:/Users/james.mchugh/.m2/repository/org/springframework/boot/spring-boot-starter-logging/1.0.2.RELEASE/spring-boot-starter-logging-1.0.2.RELEASE.jar:/Users/james.mchugh/.m2/repository/org/slf4j/jcl-over-slf4j/1.7.7/jcl-over-slf4j-1.7.7.jar:/Users/james.mchugh/.m2/repository/org/slf4j/slf4j-api/1.7.7/slf4j-api-1.7.7.jar:/Users/james.mchugh/.m2/repository/org/slf4j/jul-to-slf4j/1.7.7/jul-to-slf4j-1.7.7.jar:/Users/james.mchugh/.m2/repository/org/slf4j/log4j-over-slf4j/1.7.7/log4j-over-slf4j-1.7.7.jar:/Users/james.mchugh/.m2/repository/ch/qos/logback/logback-classic/1.1.2/logback-classic-1.1.2.jar:/Users/james.mchugh/.m2/repository/ch/qos/logback/logback-core/1.1.2/logback-core-1.1.2.jar:/Users/james.mchugh/.m2/repository/org/yaml/snakeyaml/1.13/snakeyaml-1.13.jar:/Users/james.mchugh/.m2/repository/org/springframework/boot/spring-boot-starter-jetty/1.0.2.RELEASE/spring-boot-starter-jetty-1.0.2.RELEASE.jar:/Users/james.mchugh/.m2/repository/org/eclipse/jetty/jetty-webapp/8.1.14.v20131031/jetty-webapp-8.1.14.v20131031.jar:/Users/james.mchugh/.m2/repository/org/eclipse/jetty/jetty-xml/8.1.14.v20131031/jetty-xml-8.1.14.v20131031.jar:/Users/james.mchugh/.m2/repository/org/eclipse/jetty/jetty-util/8.1.14.v20131031/jetty-util-8.1.14.v20131031.jar:/Users/james.mchugh/.m2/repository/org/eclipse/jetty/jetty-servlet/8.1.14.v20131031/jetty-servlet-8.1.14.v20131031.jar:/Users/james.mchugh/.m2/repository/org/eclipse/jetty/jetty-security/8.1.14.v20131031/jetty-security-8.1.14.v20131031.jar:/Users/james.mchugh/.m2/repository/org/eclipse/jetty/jetty-server/8.1.14.v20131031/jetty-server-8.1.14.v20131031.jar:/Users/james.mchugh/.m2/repository/org/eclipse/jetty/jetty-continuation/8.1.14.v20131031/jetty-continuation-8.1.14.v20131031.jar:/Users/james.mchugh/.m2/repository/org/eclipse/jetty/jetty-http/8.1.14.v20131031/jetty-http-8.1.14.v20131031.jar:/Users/james.mchugh/.m2/repository/org/eclipse/jetty/jetty-io/8.1.14.v20131031/jetty-io-8.1.14.v20131031.jar:/Users/james.mchugh/.m2/repository/org/eclipse/jetty/jetty-jsp/8.1.14.v20131031/jetty-jsp-8.1.14.v20131031.jar:/Users/james.mchugh/.m2/repository/org/eclipse/jetty/orbit/javax.servlet.jsp/2.2.0.v201112011158/javax.servlet.jsp-2.2.0.v201112011158.jar:/Users/james.mchugh/.m2/repository/org/eclipse/jetty/orbit/javax.servlet/3.0.0.v201112011016/javax.servlet-3.0.0.v201112011016.jar:/Users/james.mchugh/.m2/repository/org/eclipse/jetty/orbit/org.apache.jasper.glassfish/2.2.2.v201112011158/org.apache.jasper.glassfish-2.2.2.v201112011158.jar:/Users/james.mchugh/.m2/repository/org/eclipse/jetty/orbit/javax.servlet.jsp.jstl/1.2.0.v201105211821/javax.servlet.jsp.jstl-1.2.0.v201105211821.jar:/Users/james.mchugh/.m2/repository/org/eclipse/jetty/orbit/org.apache.taglibs.standard.glassfish/1.2.0.v201112081803/org.apache.taglibs.standard.glassfish-1.2.0.v201112081803.jar:/Users/james.mchugh/.m2/repository/org/eclipse/jetty/orbit/javax.el/2.2.0.v201108011116/javax.el-2.2.0.v201108011116.jar:/Users/james.mchugh/.m2/repository/org/eclipse/jetty/orbit/com.sun.el/2.2.0.v201108011116/com.sun.el-2.2.0.v201108011116.jar:/Users/james.mchugh/.m2/repository/org/eclipse/jetty/orbit/org.eclipse.jdt.core/3.7.1/org.eclipse.jdt.core-3.7.1.jar:/Users/james.mchugh/.m2/repository/org/springframework/spring-webmvc/4.0.3.RELEASE/spring-webmvc-4.0.3.RELEASE.jar:/Users/james.mchugh/.m2/repository/org/springframework/spring-web/4.0.3.RELEASE/spring-web-4.0.3.RELEASE.jar:/Applications/IntelliJ IDEA 13.app/lib/idea_rt.jar" com.intellij.rt.execution.application.AppMain test.actuator.jetty.SampleJettyApplication
    
      .   ____          _            __ _ _
     /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
    ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
     \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
      '  |____| .__|_| |_|_| |_\__, | / / / /
     =========|_|==============|___/=/_/_/_/
     :: Spring Boot ::        (v1.0.2.RELEASE)
    
    2014-07-21 15:58:55.173  INFO 65654 --- [           main] g.l.jetty.SampleJettyApplication         : Starting SampleJettyApplication on gl02729m-2.test.corp with PID 65654 (/Users/james.mchugh/Documents/workspaceGamesPlatform/core/actuator-parent/actuator-load-testing-webapp/target/classes started by james.mchugh in /Users/james.mchugh/Documents/workspaceGamesPlatform/core/actuator-parent/actuator-test-utils/actuator-load-testing-webapp)
    2014-07-21 15:58:55.223  INFO 65654 --- [           main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@188fd321: startup date [Mon Jul 21 15:58:55 BST 2014]; root of context hierarchy
    2014-07-21 15:58:56.157  INFO 65654 --- [           main] e.j.JettyEmbeddedServletContainerFactory : Server initialized with port: 8080
    2014-07-21 15:58:56.161  INFO 65654 --- [           main] org.eclipse.jetty.server.Server          : jetty-8.1.14.v20131031
    2014-07-21 15:58:56.201  INFO 65654 --- [           main] /                                        : Initializing Spring embedded WebApplicationContext
    2014-07-21 15:58:56.201  INFO 65654 --- [           main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 981 ms
    2014-07-21 15:58:56.496  INFO 65654 --- [           main] o.s.b.c.e.ServletRegistrationBean        : Mapping servlet: 'dispatcherServlet' to [/]
    2014-07-21 15:58:56.499  INFO 65654 --- [           main] o.s.b.c.embedded.FilterRegistrationBean  : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
    2014-07-21 15:58:56.516  INFO 65654 --- [           main] o.e.jetty.server.AbstractConnector       : Started [email protected]:8080
    2014-07-21 15:58:56.606  INFO 65654 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
    2014-07-21 15:58:56.687  INFO 65654 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String test.actuator.jetty.web.SampleController.helloWorld()
    2014-07-21 15:58:56.708  INFO 65654 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
    2014-07-21 15:58:56.708  INFO 65654 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
    2014-07-21 15:58:56.848  INFO 65654 --- [           main] /                                        : Initializing Spring FrameworkServlet 'dispatcherServlet'
    2014-07-21 15:58:56.849  INFO 65654 --- [           main] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization started
    2014-07-21 15:58:56.863  INFO 65654 --- [           main] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization completed in 14 ms
    2014-07-21 15:58:56.913  INFO 65654 --- [           main] o.e.jetty.server.AbstractConnector       : Started [email protected]:8080
    2014-07-21 15:58:56.916  INFO 65654 --- [           main] .s.b.c.e.j.JettyEmbeddedServletContainer : Jetty started on port: 8080
    2014-07-21 15:58:56.918  INFO 65654 --- [           main] g.l.jetty.SampleJettyApplication         : Started SampleJettyApplication in 2.108 seconds (JVM running for 2.529)
    
  • ρяσѕρєя K
    ρяσѕρєя K almost 8 years
    Add some explanation with answer for how this answer help OP in fixing current issue
  • Clement.Xu
    Clement.Xu almost 8 years
    Thanks. I've modified the reason: As you want to get the health status via HTTP...
  • Barry O'Neill
    Barry O'Neill over 7 years
    Thank you for this. I just hit this problem as well, on spring-boot 1.4.2 & Intellij 2016.3.2. The actuator endoints simply aren't being picked up when run from within the IDE.
  • Andy Piper
    Andy Piper almost 7 years
    This is definitely the missing piece as of Spring 1.5.4
  • Ewoks
    Ewoks about 3 years
    Just wasted quite some time because of IntelliJ :/ @Andy How this could happen? how to convince IntelliJ to use the right class path?
  • Poli
    Poli almost 3 years
    mvn spring-boot:run helped for spring-boot v2.4.0 on Eclipse 4.19.0