コマンドラインから実行する予定のSpringブートアプリケーションに問題があり、同時に標準/metricsエンドポイントのメトリックを提供しています。私がアプリケーションを作成したばかりで、すべてのメトリックが正しく提供されましたが、ある時点で何か「壊れている」ように見え、アプリケーションがデフォルトのエンドポイントからサービスを停止しました。既に多くのコードが存在し、バージョン管理履歴を失いたくないので、私は初期状態に戻すことはできません。誰かが私が間違っていることを指摘するかもしれませんか?SpringブートWebアプリケーションが標準エンドポイントに対応していません
私はディスパッチャサーブレットをオーバーライドせず、カスタムフィルタを追加しません。
スプリングブートバージョン1.3.7。
エラー/メトリックまたはその他のデフォルトのエンドポイントにアクセス:
ホワイトレーベルのエラーページ
あなたがフォールバックとして これを見ているように、このアプリケーションは、のために/エラー明示的なマッピングを持っていません。
月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()
したがって、フィルタ/サーブレットは作成されているように見えますが、私のアプリにはマッピングされていません。 私はここで何が不足しているのでしょうか?
404リソースが見つかりません - どのWebリソースが利用可能で、どのリソースを取得しようとしていますか。設定は 'ApplicationProperties.class'にありますので、このコードを表示するには? –
@ScaryWombat ApplicationProperties.classは、アプリケーションの起動パラメータからテキストプロパティを取得するための単純なPOJOです。Web設定には何ら影響しません。質問に記載されているように、/ metricsエンドポイントにアクセスしようとしています。そのときに404が表示されます。なぜあなたは質問をマイナスしていますか? –
'minusing' - うわー新しい言葉を学びました。実際に私はあなたを助けようとしています。私はあなたが実際に 'metrics'にマップしているコードを確認しようとしています。私は何も見えません。 –