2016-10-04 60 views
0

我有一個Spring Boot應用程序出現問題,該應用程序應該從命令行運行,並同時提供一些來自標準端點的度量標準/度量標準端點。當我剛剛創建應用程序時,所有指標都得到了正確的服務,但在某些時候,我似乎已經「破壞」了一些東西,並且我的應用程序停止了從默認終端服務。我不能恢復到初始狀態,因爲已經有很多代碼了,我不想丟失版本控制歷史記錄。也許有人可以指出我做錯了什麼?Spring Boot Web應用程序不提供標準端點

我不重寫調度程序servlet,也不添加任何自定義過濾器。

Spring Boot 1.3.7版。訪問/度或任何其他默認端點時

錯誤:

白色標籤錯誤頁面

該應用對/錯誤沒有明確的映射,所以你看到 此作爲後備。

Mon Oct 03 17:53:12 PDT 2016有一個意外的錯誤(type = Not Found,status = 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() 

因此,filters/servlet似乎被創建,但沒有映射到我的應用程序。 我可能在這裏錯過了什麼?

+0

404沒有找到資源 - 所以有哪些網絡資源可用以及您嘗試獲得哪些資源。配置在'ApplicationProperties.class'中,那麼如何顯示這些代碼呢? –

+0

@ScaryWombat ApplicationProperties.class是一個簡單的POJO,用於從應用程序啓動參數中獲取一些文本屬性。它不會以任何方式影響Web配置。正如問題中所述,我試圖訪問/度量標準端點,那就是當我得到404時。爲什麼你會濫用這個問題? –

+0

'糟糕' - 哇,我學到了一個新詞。其實我試圖幫助你。我試圖確定你有哪些代碼實際上映射到「度量」,我看不到任何代碼。 –

回答

0

好吧,我很蠢。可以說兩次。所以,畢竟,問題是我的記憶力不好。我實際上是重寫應用程序屬性是這樣的:

management.contextPath=/services/admin 

你猜怎麼着,我的/度在那裏所有的時間。這只是在/服務/管理/指標,我完全忘了覆蓋。咄。

相關問題