Spring Boot Web应用程序不提供标准端点

时间:2016-10-04 01:14:43

标签: java spring spring-boot

我遇到了Spring Boot Application的问题,它应该从命令行运行,同时提供标准 / metrics 端点的一些指标。当我刚刚创建应用程序时,所有指标都得到了正确的服务,但在某些时候我似乎已经打破了#34;某些内容和我的应用程序停止从默认端点提供服务我无法恢复到初始状态,因为已经有很多代码,我不想丢失版本控制历史记录。也许有人可以指出我做错了什么?

我没有覆盖调度程序servlet,也没有添加任何自定义过滤器。

Spring Boot 1.3.7版。

访问/ metrics或任何其他默认端点时出错

  

Whitelabel错误页面

     

这个应用程序没有/ error的显式映射,所以你看到了   这是一个后备。

     

Mon Oct 03 17:53:12 PDT 2016出现意外错误(type = Not   找到了,状态= 404)。没有可用的消息

申请文件:

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Runner.class, args);
    }
}

主要参赛者档案:

@EnableConfigurationProperties(ApplicationProperties.class)
@SpringBootApplication
public class Runner implements CommandLineRunner {
    @Override
    public void run(String... strings) throws Exception {
        // shortened ...
    }
}

POM文件片段:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.3.7.RELEASE</version>
    <relativePath/>
</parent>

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

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

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-configuration-processor</artifactId>
        <optional>true</optional>
    </dependency>

调试输出显示已创建过滤器:

2016-10-03 17:26:14.461 DEBUG 85880 --- [ost-startStop-1] o.s.b.c.e.ServletContextInitializerBeans : Added existing Servlet initializer bean 'dispatcherServletRegistration'; order=2147483647, resource=class path resource [org/springframework/boot/autoconfigure/web/DispatcherServletAutoConfiguration$DispatcherServletConfiguration.class]
2016-10-03 17:26:14.720 DEBUG 85880 --- [ost-startStop-1] o.s.b.c.e.ServletContextInitializerBeans : Created Filter initializer for bean 'metricFilter'; order=-2147483648, resource=class path resource [org/springframework/boot/actuate/autoconfigure/MetricFilterAutoConfiguration.class]

我创建了一个样本清理应用程序进行比较,输出中有一些我在我的应用中没有的行:

2016-10-03 18:06:48.075 DEBUG 86858 --- [           main] o.s.b.a.e.mvc.EndpointHandlerMapping     : 2 request handler methods found on class org.springframework.boot.actuate.endpoint.mvc.MetricsMvcEndpoint: {public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.MetricsMvcEndpoint.value(java.lang.String)={[/{name:.*}],methods=[GET],produces=[application/json]}, public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()={[],methods=[GET],produces=[application/json]}}
2016-10-03 18:06:48.076  INFO 86858 --- [           main] o.s.b.a.e.mvc.EndpointHandlerMapping     : Mapped "{[/metrics/{name:.*}],methods=[GET],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.MetricsMvcEndpoint.value(java.lang.String)
2016-10-03 18:06:48.076  INFO 86858 --- [           main] o.s.b.a.e.mvc.EndpointHandlerMapping     : Mapped "{[/metrics || /metrics.json],methods=[GET],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()

因此,过滤器/ servlet似乎已创建但未映射到我的应用程序中。 我在这里可能缺少什么?

1 个答案:

答案 0 :(得分:0)

好吧,我是傻瓜。可以说两次。 所以,毕竟问题是我的记忆力不好。我实际上覆盖了这样的应用程序属性:

management.contextPath=/services/admin

猜猜是什么,我的/指标一直在那里。它只是在/ services / admin / metrics下,我完全忘记了它被覆盖了。咄。