問題タブ [actuator]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Spring Boot アクチュエーター - 「/shutdown」が 500 エラーで失敗する
背景情報
プロダクション ユーティリティに Actuator を使用する Spring Boot Web アプリケーションがあります。
アプリケーションは正常に動作し、管理ポートはうまく機能します。統計を参照したり、正常性を確認したりできます。また、リモート シャットダウン エンドポイントを有効にすると、エンドポイントの localhost:{mgmt_port}/actuator リストに適切に表示されます。
私の問題
ただし、localhost:{mgmt_port}/shutdown に移動すると、次のように表示されます。
有用な情報
シャットダウン リンクをクリックした後も、アプリケーション全体が実行されているように見えます。カスタム アプリケーション エンドポイントから引き続きデータを取得できます。
Spring アクチュエーターが提供する管理 URL も、シャットダウン後も正常に動作しているようです。
発行前のコンソール出力
10:01:42.496 [main] INFO osbcetTomcatEmbeddedServletContainer - Tomcat がポートで開始されました: 8002 (http) 10:01:42.499 [main] INFO com.xyz.api.Main - Main が 5.956 秒で開始されました (JVM は 6.381 秒間実行されました) )
発行後のコンソール出力
10:03:29.090 [http-nio-8003-exec-1] INFO oaccC[Tomcat-1].[localhost].[/] - Spring FrameworkServlet 'dispatcherServlet' の初期化中 10:03:29.090 [http-nio-8003- exec-1] 情報 osweb.servlet.DispatcherServlet - FrameworkServlet 'dispatcherServlet': 初期化が開始されました 10:03:29.126 [http-nio-8003-exec-1] 情報 osweb.servlet.DispatcherServlet - FrameworkServlet 'dispatcherServlet': 初期化が 36 で完了しましたms 10:03:29.151 [http-nio-8003-exec-1] エラー oaccC[.[.[.[dispatcherServlet] - サーブレット [dispatcherServlet] の Servlet.service() がパス [] のコンテキストで例外をスローしました [リクエスト メソッド'GET' はサポートされていません] 根本原因 org.springframework.web.HttpRequestMethodNotSupportedException: リクエスト メソッド 'GET' は org.springframework.web.servlet でサポートされていません。mvc.method.RequestMappingInfoHandlerMapping.handleNoMatch(RequestMappingInfoHandlerMapping.java:204) ~[spring-webmvc-4.2.4.RELEASE.jar!/:4.2.4.RELEASE] at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.lookupHandlerMethod (AbstractHandlerMethodMapping.java:382) ~[spring-webmvc-4.2.4.RELEASE.jar!/:4.2.4.RELEASE] at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal(AbstractHandlerMethodMapping.java:322) ~[spring-webmvc-4.2.4.RELEASE.jar!/:4.2.4.RELEASE] at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal(AbstractHandlerMethodMapping.java:60) ~[spring-webmvc-4.2 .4.RELEASE.jar!/:4.2.4.RELEASE] at org.springframework.web.servlet.handler.AbstractHandlerMapping.getHandler(AbstractHandlerMapping.java:351) ~[spring-webmvc-4.2.4.RELEASE.jar!/:4.2.4.RELEASE] org.springframework.boot.actuate.autoconfigure.EndpointWebMvcChildContextConfiguration$CompositeHandlerMapping.getHandler(EndpointWebMvcChildContextConfiguration.java:212) で ~[spring -boot-actuator-1.3.2.RELEASE.jar!/:1.3.2.RELEASE] at org.springframework.web.servlet.DispatcherServlet.getHandler(DispatcherServlet.java:1120) ~[spring-webmvc-4.2.4. RELEASE.jar!/:4.2.4.RELEASE] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:932) ~[spring-webmvc-4.2.4.RELEASE.jar!/:4.2.4 .RELEASE] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893) ~[spring-webmvc-4.2.4.RELEASE.jar!/:4.2.4.RELEASE] at org.springframework.web .servlet.Frameworkサーブレット。processRequest(FrameworkServlet.java:969) ~[spring-webmvc-4.2.4.RELEASE.jar!/:4.2.4.RELEASE] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:860) ~ [spring-webmvc-4.2.4.RELEASE.jar!/:4.2.4.RELEASE] javax.servlet.http.HttpServlet.service(HttpServlet.java:622) ~[tomcat-embed-core-8.0.30. jar!/:8.0.30] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:845) ~[spring-webmvc-4.2.4.RELEASE.jar!/:4.2.4.RELEASE] at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) ~[tomcat-embed-core-8.0.30.jar!/:8.0.30] org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain) で.java:291) ~[tomcat-embed-core-8.0.30.jar!/:8.0.30] org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) ~[tomcat-embed-core-8.0.30.jar!/:8.0.30] org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) で ~[tomcat -embed-core-8.0.30.jar!/:8.0.30] org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) [tomcat-embed-core-8.0.30.jar!/ :8.0.30] org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) [tomcat-embed-core-8.0.30.jar!/:8.0.30] org.apache.catalina で。 core.StandardHostValve.invoke(StandardHostValve.java:141) [tomcat-embed-core-8.0.30.jar!/:8.0.30] org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) で[tomcat-embed-core-8.0.30.jar!/:8.0.30] org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) [tomcat-embed-core-8.0.30.jar!/:8.0.30] org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:521) [tomcat-embed-core-8.0] .30.jar!/:8.0.30] で org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1096) [tomcat-embed-core-8.0.30.jar!/:8.0.30] でorg.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:674) [tomcat-embed-core-8.0.30.jar!/:8.0.30] at org.apache.tomcat.util.net.NioEndpoint$ SocketProcessor.doRun(NioEndpoint.java:1500) [tomcat-embed-core-8.0.30.jar!/:8.0.30] org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java: 1456) [tomcat-embed-core-8.0.30.jar!/:8.0.30] java.util.concurrent.ThreadPoolExecutor.runWorker (不明なソース) [na:1.8.0_51] で java.util.concurrent.ThreadPoolExecutor$Worker.run(不明なソース) [na:1.8.0_51] org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat -embed-core-8.0.30.jar!/:8.0.30] java.lang.Thread.run(不明なソース) [na:1.8.0_51]
spring - Spring Boot アクチュエータのヘルス エンドポイント
次のような PostgreSQL ヘルス インジケーターを作成しました。
私の Application.java では、このコンポーネントのこのパッケージをスキャンしています:
私のapplication.propertiesには、次のセットがあります。
{url}/health を押すと、次のように表示されます。
{"ステータス":"ダウン"}
カスタム ヘルス インジケーターを表示するにはどうすればよいですか?