解决springboot 新版本 2.1.6 spring-boot-starter-actuator 访问报404
pom.xml
- <?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>
-
- <artifactId>demoservice</artifactId>
-
- <name>demoservice</name>
- <!-- FIXME change it to the project's website -->
- <url>http://www.example.com</url>
-
-
- <parent>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-parent</artifactId>
- <version>2.1.6.RELEASE</version>
- <relativePath/> <!-- lookup parent from repository -->
- </parent>
-
- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <maven.compiler.source>1.8</maven.compiler.source>
- <maven.compiler.target>1.8</maven.compiler.target>
- <spring-cloud.version>Greenwich.SR2</spring-cloud.version>
- </properties>
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-dependencies</artifactId>
- <version>${spring-cloud.version}</version>
- <type>pom</type>
- <scope>import</scope>
- </dependency>
- </dependencies>
- </dependencyManagement>
-
- <dependencies>
- <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-starter-test</artifactId>
- <scope>test</scope>
- </dependency>
- </dependencies>
-
- <build>
- <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
- <plugins>
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- </plugin>
- </plugins>
- </pluginManagement>
- </build>
- </project>
application.yml
- server:
- # 适用于本地调试,防止端口冲突
- port: ${random.int[8000,9000]}
-
- # springboot 2.1.6 引入actuator需要声明导出的接口,否则不会像早期版本那样自动映射出去
- management:
- endpoints:
- web:
- exposure:
- include: "*"
启动服务,输出日志:
- . ____ _ __ _ _
- /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
- ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
- \\/ ___)| |_)| | | | | || (_| | ) ) ) )
- ' |____| .__|_| |_|_| |_\__, | / / / /
- =========|_|==============|___/=/_/_/_/
- :: Spring Boot :: (v2.1.6.RELEASE)
-
- 2019-08-20 16:55:15.502 INFO 2320 --- [ main] com.hknaruto.DemoServiceApp : Starting DemoServiceApp on localhost.localdomain with PID 2320 (/home/yeqiang/IdeaProjects/springclouddemo/demoservice/target/classes started by yeqiang in /home/yeqiang/IdeaProjects/springclouddemo)
- 2019-08-20 16:55:15.514 INFO 2320 --- [ main] com.hknaruto.DemoServiceApp : No active profile set, falling back to default profiles: default
- 2019-08-20 16:55:16.825 INFO 2320 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8073 (http)
- 2019-08-20 16:55:16.849 INFO 2320 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
- 2019-08-20 16:55:16.849 INFO 2320 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.21]
- 2019-08-20 16:55:16.929 INFO 2320 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
- 2019-08-20 16:55:16.929 INFO 2320 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1332 ms
- 2019-08-20 16:55:17.400 INFO 2320 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
- 2019-08-20 16:55:17.616 INFO 2320 --- [ main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 15 endpoint(s) beneath base path '/actuator'
- 2019-08-20 16:55:17.684 INFO 2320 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8073 (http) with context path ''
- 2019-08-20 16:55:17.686 INFO 2320 --- [ main] com.hknaruto.DemoServiceApp : Started DemoServiceApp in 2.63 seconds (JVM running for 3.01)
- 2019-08-20 16:55:30.432 INFO 2320 --- [nio-8073-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
- 2019-08-20 16:55:30.432 INFO 2320 --- [nio-8073-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
- 2019-08-20 16:55:30.439 INFO 2320 --- [nio-8073-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 7 ms
访问:http://127.0.0.1:8073/actuator 得到:
- {
- "_links": {
- "self": {
- "href": "http://127.0.0.1:8073/actuator",
- "templated": false
- },
- "auditevents": {
- "href": "http://127.0.0.1:8073/actuator/auditevents",
- "templated": false
- },
- "beans": {
- "href": "http://127.0.0.1:8073/actuator/beans",
- "templated": false
- },
- "caches-cache": {
- "href": "http://127.0.0.1:8073/actuator/caches/{cache}",
- "templated": true
- },
- "caches": {
- "href": "http://127.0.0.1:8073/actuator/caches",
- "templated": false
- },
- "health-component": {
- "href": "http://127.0.0.1:8073/actuator/health/{component}",
- "templated": true
- },
- "health": {
- "href": "http://127.0.0.1:8073/actuator/health",
- "templated": false
- },
- "health-component-instance": {
- "href": "http://127.0.0.1:8073/actuator/health/{component}/{instance}",
- "templated": true
- },
- "conditions": {
- "href": "http://127.0.0.1:8073/actuator/conditions",
- "templated": false
- },
- "configprops": {
- "href": "http://127.0.0.1:8073/actuator/configprops",
- "templated": false
- },
- "env-toMatch": {
- "href": "http://127.0.0.1:8073/actuator/env/{toMatch}",
- "templated": true
- },
- "env": {
- "href": "http://127.0.0.1:8073/actuator/env",
- "templated": false
- },
- "info": {
- "href": "http://127.0.0.1:8073/actuator/info",
- "templated": false
- },
- "loggers": {
- "href": "http://127.0.0.1:8073/actuator/loggers",
- "templated": false
- },
- "loggers-name": {
- "href": "http://127.0.0.1:8073/actuator/loggers/{name}",
- "templated": true
- },
- "heapdump": {
- "href": "http://127.0.0.1:8073/actuator/heapdump",
- "templated": false
- },
- "threaddump": {
- "href": "http://127.0.0.1:8073/actuator/threaddump",
- "templated": false
- },
- "metrics": {
- "href": "http://127.0.0.1:8073/actuator/metrics",
- "templated": false
- },
- "metrics-requiredMetricName": {
- "href": "http://127.0.0.1:8073/actuator/metrics/{requiredMetricName}",
- "templated": true
- },
- "scheduledtasks": {
- "href": "http://127.0.0.1:8073/actuator/scheduledtasks",
- "templated": false
- },
- "httptrace": {
- "href": "http://127.0.0.1:8073/actuator/httptrace",
- "templated": false
- },
- "mappings": {
- "href": "http://127.0.0.1:8073/actuator/mappings",
- "templated": false
- }
- }
- }
说明:
1. 响应内容经过手动json格式化
2. json内容显示了所有支持的导出方法,与老版本有一定差异
访问mapping接口,http://127.0.0.1:8073/actuator/mappings 响应如下:
- {
- "contexts": {
- "application": {
- "mappings": {
- "dispatcherServlets": {
- "dispatcherServlet": [{
- "handler": "ResourceHttpRequestHandler [class path resource [META-INF/resources/], class path resource [resources/], class path resource [static/], class path resource [public/], ServletContext resource [/], class path resource []]",
- "predicate": "/**/favicon.ico",
- "details": null
- }, {
- "handler": "Actuator web endpoint 'auditevents'",
- "predicate": "{GET /actuator/auditevents, produces [application/vnd.spring-boot.actuator.v2+json || application/json]}",
- "details": {
- "handlerMethod": {
- "className": "org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping.OperationHandler",
- "name": "handle",
- "descriptor": "(Ljavax/servlet/http/HttpServletRequest;Ljava/util/Map;)Ljava/lang/Object;"
- },
- "requestMappingConditions": {
- "consumes": [],
- "headers": [],
- "methods": ["GET"],
- "params": [],
- "patterns": ["/actuator/auditevents"],
- "produces": [{
- "mediaType": "application/vnd.spring-boot.actuator.v2+json",
- "negated": false
- }, {
- "mediaType": "application/json",
- "negated": false
- }]
- }
- }
- }, {
- "handler": "Actuator web endpoint 'beans'",
- "predicate": "{GET /actuator/beans, produces [application/vnd.spring-boot.actuator.v2+json || application/json]}",
- "details": {
- "handlerMethod": {
- "className": "org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping.OperationHandler",
- "name": "handle",
- "descriptor": "(Ljavax/servlet/http/HttpServletRequest;Ljava/util/Map;)Ljava/lang/Object;"
- },
- "requestMappingConditions": {
- "consumes": [],
- "headers": [],
- "methods": ["GET"],
- "params": [],
- "patterns": ["/actuator/beans"],
- "produces": [{
- "mediaType": "application/vnd.spring-boot.actuator.v2+json",
- "negated": false
- }, {
- "mediaType": "application/json",
- "negated": false
- }]
- }
- }
- }, {
- "handler": "Actuator web endpoint 'caches-cache'",
- "predicate": "{DELETE /actuator/caches/{cache}, produces [application/vnd.spring-boot.actuator.v2+json || application/json]}",
- "details": {
- "handlerMethod": {
- "className": "org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping.OperationHandler",
- "name": "handle",
- "descriptor": "(Ljavax/servlet/http/HttpServletRequest;Ljava/util/Map;)Ljava/lang/Object;"
- },
- "requestMappingConditions": {
- "consumes": [],
- "headers": [],
- "methods": ["DELETE"],
- "params": [],
- "patterns": ["/actuator/caches/{cache}"],
- "produces": [{
- "mediaType": "application/vnd.spring-boot.actuator.v2+json",
- "negated": false
- }, {
- "mediaType": "application/json",
- "negated": false
- }]
- }
- }
- }, {
- "handler": "Actuator web endpoint 'caches'",
- "predicate": "{GET /actuator/caches, produces [application/vnd.spring-boot.actuator.v2+json || application/json]}",
- "details": {
- "handlerMethod": {
- "className": "org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping.OperationHandler",
- "name": "handle",
- "descriptor": "(Ljavax/servlet/http/HttpServletRequest;Ljava/util/Map;)Ljava/lang/Object;"
- },
- "requestMappingConditions": {
- "consumes": [],
- "headers": [],
- "methods": ["GET"],
- "params": [],
- "patterns": ["/actuator/caches"],
- "produces": [{
- "mediaType": "application/vnd.spring-boot.actuator.v2+json",
- "negated": false
- }, {
- "mediaType": "application/json",
- "negated": false
- }]
- }
- }
- }, {
- "handler": "Actuator web endpoint 'caches'",
- "predicate": "{DELETE /actuator/caches}",
- "details": {
- "handlerMethod": {
- "className": "org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping.OperationHandler",
- "name": "handle",
- "descriptor": "(Ljavax/servlet/http/HttpServletRequest;Ljava/util/Map;)Ljava/lang/Object;"
- },
- "requestMappingConditions": {
- "consumes": [],
- "headers": [],
- "methods": ["DELETE"],
- "params": [],
- "patterns": ["/actuator/caches"],
- "produces": []
- }
- }
- }, {
- "handler": "Actuator web endpoint 'caches-cache'",
- "predicate": "{GET /actuator/caches/{cache}, produces [application/vnd.spring-boot.actuator.v2+json || application/json]}",
- "details": {
- "handlerMethod": {
- "className": "org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping.OperationHandler",
- "name": "handle",
- "descriptor": "(Ljavax/servlet/http/HttpServletRequest;Ljava/util/Map;)Ljava/lang/Object;"
- },
- "requestMappingConditions": {
- "consumes": [],
- "headers": [],
- "methods": ["GET"],
- "params": [],
- "patterns": ["/actuator/caches/{cache}"],
- "produces": [{
- "mediaType": "application/vnd.spring-boot.actuator.v2+json",
- "negated": false
- }, {
- "mediaType": "application/json",
- "negated": false
- }]
- }
- }
- }, {
- "handler": "Actuator web endpoint 'health-component'",
- "predicate": "{GET /actuator/health/{component}, produces [application/vnd.spring-boot.actuator.v2+json || application/json]}",
- "details": {
- "handlerMethod": {
- "className": "org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping.OperationHandler",
- "name": "handle",
- "descriptor": "(Ljavax/servlet/http/HttpServletRequest;Ljava/util/Map;)Ljava/lang/Object;"
- },
- "requestMappingConditions": {
- "consumes": [],
- "headers": [],
- "methods": ["GET"],
- "params": [],
- "patterns": ["/actuator/health/{component}"],
- "produces": [{
- "mediaType": "application/vnd.spring-boot.actuator.v2+json",
- "negated": false
- }, {
- "mediaType": "application/json",
- "negated": false
- }]
- }
- }
- }, {
- "handler": "Actuator web endpoint 'health'",
- "predicate": "{GET /actuator/health, produces [application/vnd.spring-boot.actuator.v2+json || application/json]}",
- "details": {
- "handlerMethod": {
- "className": "org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping.OperationHandler",
- "name": "handle",
- "descriptor": "(Ljavax/servlet/http/HttpServletRequest;Ljava/util/Map;)Ljava/lang/Object;"
- },
- "requestMappingConditions": {
- "consumes": [],
- "headers": [],
- "methods": ["GET"],
- "params": [],
- "patterns": ["/actuator/health"],
- "produces": [{
- "mediaType": "application/vnd.spring-boot.actuator.v2+json",
- "negated": false
- }, {
- "mediaType": "application/json",
- "negated": false
- }]
- }
- }
- }, {
- "handler": "Actuator web endpoint 'health-component-instance'",
- "predicate": "{GET /actuator/health/{component}/{instance}, produces [application/vnd.spring-boot.actuator.v2+json || application/json]}",
- "details": {
- "handlerMethod": {
- "className": "org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping.OperationHandler",
- "name": "handle",
- "descriptor": "(Ljavax/servlet/http/HttpServletRequest;Ljava/util/Map;)Ljava/lang/Object;"
- },
- "requestMappingConditions": {
- "consumes": [],
- "headers": [],
- "methods": ["GET"],
- "params": [],
- "patterns": ["/actuator/health/{component}/{instance}"],
- "produces": [{
- "mediaType": "application/vnd.spring-boot.actuator.v2+json",
- "negated": false
- }, {
- "mediaType": "application/json",
- "negated": false
- }]
- }
- }
- }, {
- "handler": "Actuator web endpoint 'conditions'",
- "predicate": "{GET /actuator/conditions, produces [application/vnd.spring-boot.actuator.v2+json || application/json]}",
- "details": {
- "handlerMethod": {
- "className": "org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping.OperationHandler",
- "name": "handle",
- "descriptor": "(Ljavax/servlet/http/HttpServletRequest;Ljava/util/Map;)Ljava/lang/Object;"
- },
- "requestMappingConditions": {
- "consumes": [],
- "headers": [],
- "methods": ["GET"],
- "params": [],
- "patterns": ["/actuator/conditions"],
- "produces": [{
- "mediaType": "application/vnd.spring-boot.actuator.v2+json",
- "negated": false
- }, {
- "mediaType": "application/json",
- "negated": false
- }]
- }
- }
- }, {
- "handler": "Actuator web endpoint 'configprops'",
- "predicate": "{GET /actuator/configprops, produces [application/vnd.spring-boot.actuator.v2+json || application/json]}",
- "details": {
- "handlerMethod": {
- "className": "org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping.OperationHandler",
- "name": "handle",
- "descriptor": "(Ljavax/servlet/http/HttpServletRequest;Ljava/util/Map;)Ljava/lang/Object;"
- },
- "requestMappingConditions": {
- "consumes": [],
- "headers": [],
- "methods": ["GET"],
- "params": [],
- "patterns": ["/actuator/configprops"],
- "produces": [{
- "mediaType": "application/vnd.spring-boot.actuator.v2+json",
- "negated": false
- }, {
- "mediaType": "application/json",
- "negated": false
- }]
- }
- }
- }, {
- "handler": "Actuator web endpoint 'env-toMatch'",
- "predicate": "{GET /actuator/env/{toMatch}, produces [application/vnd.spring-boot.actuator.v2+json || application/json]}",
- "details": {
- "handlerMethod": {
- "className": "org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping.OperationHandler",
- "name": "handle",
- "descriptor": "(Ljavax/servlet/http/HttpServletRequest;Ljava/util/Map;)Ljava/lang/Object;"
- },
- "requestMappingConditions": {
- "consumes": [],
- "headers": [],
- "methods": ["GET"],
- "params": [],
- "patterns": ["/actuator/env/{toMatch}"],
- "produces": [{
- "mediaType": "application/vnd.spring-boot.actuator.v2+json",
- "negated": false
- }, {
- "mediaType": "application/json",
- "negated": false
- }]
- }
- }
- }, {
- "handler": "Actuator web endpoint 'env'",
- "predicate": "{GET /actuator/env, produces [application/vnd.spring-boot.actuator.v2+json || application/json]}",
- "details": {
- "handlerMethod": {
- "className": "org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping.OperationHandler",
- "name": "handle",
- "descriptor": "(Ljavax/servlet/http/HttpServletRequest;Ljava/util/Map;)Ljava/lang/Object;"
- },
- "requestMappingConditions": {
- "consumes": [],
- "headers": [],
- "methods": ["GET"],
- "params": [],
- "patterns": ["/actuator/env"],
- "produces": [{
- "mediaType": "application/vnd.spring-boot.actuator.v2+json",
- "negated": false
- }, {
- "mediaType": "application/json",
- "negated": false
- }]
- }
- }
- }, {
- "handler": "Actuator web endpoint 'info'",
- "predicate": "{GET /actuator/info, produces [application/vnd.spring-boot.actuator.v2+json || application/json]}",
- "details": {
- "handlerMethod": {
- "className": "org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping.OperationHandler",
- "name": "handle",
- "descriptor": "(Ljavax/servlet/http/HttpServletRequest;Ljava/util/Map;)Ljava/lang/Object;"
- },
- "requestMappingConditions": {
- "consumes": [],
- "headers": [],
- "methods": ["GET"],
- "params": [],
- "patterns": ["/actuator/info"],
- "produces": [{
- "mediaType": "application/vnd.spring-boot.actuator.v2+json",
- "negated": false
- }, {
- "mediaType": "application/json",
- "negated": false
- }]
- }
- }
- }, {
- "handler": "Actuator web endpoint 'loggers'",
- "predicate": "{GET /actuator/loggers, produces [application/vnd.spring-boot.actuator.v2+json || application/json]}",
- "details": {
- "handlerMethod": {
- "className": "org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping.OperationHandler",
- "name": "handle",
- "descriptor": "(Ljavax/servlet/http/HttpServletRequest;Ljava/util/Map;)Ljava/lang/Object;"
- },
- "requestMappingConditions": {
- "consumes": [],
- "headers": [],
- "methods": ["GET"],
- "params": [],
- "patterns": ["/actuator/loggers"],
- "produces": [{
- "mediaType": "application/vnd.spring-boot.actuator.v2+json",
- "negated": false
- }, {
- "mediaType": "application/json",
- "negated": false
- }]
- }
- }
- }, {
- "handler": "Actuator web endpoint 'loggers-name'",
- "predicate": "{GET /actuator/loggers/{name}, produces [application/vnd.spring-boot.actuator.v2+json || application/json]}",
- "details": {
- "handlerMethod": {
- "className": "org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping.OperationHandler",
- "name": "handle",
- "descriptor": "(Ljavax/servlet/http/HttpServletRequest;Ljava/util/Map;)Ljava/lang/Object;"
- },
- "requestMappingConditions": {
- "consumes": [],
- "headers": [],
- "methods": ["GET"],
- "params": [],
- "patterns": ["/actuator/loggers/{name}"],
- "produces": [{
- "mediaType": "application/vnd.spring-boot.actuator.v2+json",
- "negated": false
- }, {
- "mediaType": "application/json",
- "negated": false
- }]
- }
- }
- }, {
- "handler": "Actuator web endpoint 'loggers-name'",
- "predicate": "{POST /actuator/loggers/{name}, consumes [application/vnd.spring-boot.actuator.v2+json || application/json]}",
- "details": {
- "handlerMethod": {
- "className": "org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping.OperationHandler",
- "name": "handle",
- "descriptor": "(Ljavax/servlet/http/HttpServletRequest;Ljava/util/Map;)Ljava/lang/Object;"
- },
- "requestMappingConditions": {
- "consumes": [{
- "mediaType": "application/vnd.spring-boot.actuator.v2+json",
- "negated": false
- }, {
- "mediaType": "application/json",
- "negated": false
- }],
- "headers": [],
- "methods": ["POST"],
- "params": [],
- "patterns": ["/actuator/loggers/{name}"],
- "produces": []
- }
- }
- }, {
- "handler": "Actuator web endpoint 'heapdump'",
- "predicate": "{GET /actuator/heapdump, produces [application/octet-stream]}",
- "details": {
- "handlerMethod": {
- "className": "org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping.OperationHandler",
- "name": "handle",
- "descriptor": "(Ljavax/servlet/http/HttpServletRequest;Ljava/util/Map;)Ljava/lang/Object;"
- },
- "requestMappingConditions": {
- "consumes": [],
- "headers": [],
- "methods": ["GET"],
- "params": [],
- "patterns": ["/actuator/heapdump"],
- "produces": [{
- "mediaType": "application/octet-stream",
- "negated": false
- }]
- }
- }
- }, {
- "handler": "Actuator web endpoint 'threaddump'",
- "predicate": "{GET /actuator/threaddump, produces [application/vnd.spring-boot.actuator.v2+json || application/json]}",
- "details": {
- "handlerMethod": {
- "className": "org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping.OperationHandler",
- "name": "handle",
- "descriptor": "(Ljavax/servlet/http/HttpServletRequest;Ljava/util/Map;)Ljava/lang/Object;"
- },
- "requestMappingConditions": {
- "consumes": [],
- "headers": [],
- "methods": ["GET"],
- "params": [],
- "patterns": ["/actuator/threaddump"],
- "produces": [{
- "mediaType": "application/vnd.spring-boot.actuator.v2+json",
- "negated": false
- }, {
- "mediaType": "application/json",
- "negated": false
- }]
- }
- }
- }, {
- "handler": "Actuator web endpoint 'metrics'",
- "predicate": "{GET /actuator/metrics, produces [application/vnd.spring-boot.actuator.v2+json || application/json]}",
- "details": {
- "handlerMethod": {
- "className": "org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping.OperationHandler",
- "name": "handle",
- "descriptor": "(Ljavax/servlet/http/HttpServletRequest;Ljava/util/Map;)Ljava/lang/Object;"
- },
- "requestMappingConditions": {
- "consumes": [],
- "headers": [],
- "methods": ["GET"],
- "params": [],
- "patterns": ["/actuator/metrics"],
- "produces": [{
- "mediaType": "application/vnd.spring-boot.actuator.v2+json",
- "negated": false
- }, {
- "mediaType": "application/json",
- "negated": false
- }]
- }
- }
- }, {
- "handler": "Actuator web endpoint 'metrics-requiredMetricName'",
- "predicate": "{GET /actuator/metrics/{requiredMetricName}, produces [application/vnd.spring-boot.actuator.v2+json || application/json]}",
- "details": {
- "handlerMethod": {
- "className": "org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping.OperationHandler",
- "name": "handle",
- "descriptor": "(Ljavax/servlet/http/HttpServletRequest;Ljava/util/Map;)Ljava/lang/Object;"
- },
- "requestMappingConditions": {
- "consumes": [],
- "headers": [],
- "methods": ["GET"],
- "params": [],
- "patterns": ["/actuator/metrics/{requiredMetricName}"],
- "produces": [{
- "mediaType": "application/vnd.spring-boot.actuator.v2+json",
- "negated": false
- }, {
- "mediaType": "application/json",
- "negated": false
- }]
- }
- }
- }, {
- "handler": "Actuator web endpoint 'scheduledtasks'",
- "predicate": "{GET /actuator/scheduledtasks, produces [application/vnd.spring-boot.actuator.v2+json || application/json]}",
- "details": {
- "handlerMethod": {
- "className": "org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping.OperationHandler",
- "name": "handle",
- "descriptor": "(Ljavax/servlet/http/HttpServletRequest;Ljava/util/Map;)Ljava/lang/Object;"
- },
- "requestMappingConditions": {
- "consumes": [],
- "headers": [],
- "methods": ["GET"],
- "params": [],
- "patterns": ["/actuator/scheduledtasks"],
- "produces": [{
- "mediaType": "application/vnd.spring-boot.actuator.v2+json",
- "negated": false
- }, {
- "mediaType": "application/json",
- "negated": false
- }]
- }
- }
- }, {
- "handler": "Actuator web endpoint 'httptrace'",
- "predicate": "{GET /actuator/httptrace, produces [application/vnd.spring-boot.actuator.v2+json || application/json]}",
- "details": {
- "handlerMethod": {
- "className": "org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping.OperationHandler",
- "name": "handle",
- "descriptor": "(Ljavax/servlet/http/HttpServletRequest;Ljava/util/Map;)Ljava/lang/Object;"
- },
- "requestMappingConditions": {
- "consumes": [],
- "headers": [],
- "methods": ["GET"],
- "params": [],
- "patterns": ["/actuator/httptrace"],
- "produces": [{
- "mediaType": "application/vnd.spring-boot.actuator.v2+json",
- "negated": false
- }, {
- "mediaType": "application/json",
- "negated": false
- }]
- }
- }
- }, {
- "handler": "Actuator web endpoint 'mappings'",
- "predicate": "{GET /actuator/mappings, produces [application/vnd.spring-boot.actuator.v2+json || application/json]}",
- "details": {
- "handlerMethod": {
- "className": "org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping.OperationHandler",
- "name": "handle",
- "descriptor": "(Ljavax/servlet/http/HttpServletRequest;Ljava/util/Map;)Ljava/lang/Object;"
- },
- "requestMappingConditions": {
- "consumes": [],
- "headers": [],
- "methods": ["GET"],
- "params": [],
- "patterns": ["/actuator/mappings"],
- "produces": [{
- "mediaType": "application/vnd.spring-boot.actuator.v2+json",
- "negated": false
- }, {
- "mediaType": "application/json",
- "negated": false
- }]
- }
- }
- }, {
- "handler": "Actuator root web endpoint",
- "predicate": "{GET /actuator, produces [application/vnd.spring-boot.actuator.v2+json || application/json]}",
- "details": {
- "handlerMethod": {
- "className": "org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping.WebMvcLinksHandler",
- "name": "links",
- "descriptor": "(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)Ljava/lang/Object;"
- },
- "requestMappingConditions": {
- "consumes": [],
- "headers": [],
- "methods": ["GET"],
- "params": [],
- "patterns": ["/actuator"],
- "produces": [{
- "mediaType": "application/vnd.spring-boot.actuator.v2+json",
- "negated": false
- }, {
- "mediaType": "application/json",
- "negated": false
- }]
- }
- }
- }, {
- "handler": "public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)",
- "predicate": "{ /error, produces [text/html]}",
- "details": {
- "handlerMethod": {
- "className": "org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController",
- "name": "errorHtml",
- "descriptor": "(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)Lorg/springframework/web/servlet/ModelAndView;"
- },
- "requestMappingConditions": {
- "consumes": [],
- "headers": [],
- "methods": [],
- "params": [],
- "patterns": ["/error"],
- "produces": [{
- "mediaType": "text/html",
- "negated": false
- }]
- }
- }
- }, {
- "handler": "public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.error(javax.servlet.http.HttpServletRequest)",
- "predicate": "{ /error}",
- "details": {
- "handlerMethod": {
- "className": "org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController",
- "name": "error",
- "descriptor": "(Ljavax/servlet/http/HttpServletRequest;)Lorg/springframework/http/ResponseEntity;"
- },
- "requestMappingConditions": {
- "consumes": [],
- "headers": [],
- "methods": [],
- "params": [],
- "patterns": ["/error"],
- "produces": []
- }
- }
- }, {
- "handler": "ResourceHttpRequestHandler [\"classpath:/META-INF/resources/webjars/\"]",
- "predicate": "/webjars/**",
- "details": null
- }, {
- "handler": "ResourceHttpRequestHandler [\"classpath:/META-INF/resources/\", \"classpath:/resources/\", \"classpath:/static/\", \"classpath:/public/\", \"/\"]",
- "predicate": "/**",
- "details": null
- }]
- },
- "servletFilters": [{
- "servletNameMappings": [],
- "urlPatternMappings": ["/*"],
- "name": "webMvcMetricsFilter",
- "className": "org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter"
- }, {
- "servletNameMappings": [],
- "urlPatternMappings": ["/*"],
- "name": "requestContextFilter",
- "className": "org.springframework.boot.web.servlet.filter.OrderedRequestContextFilter"
- }, {
- "servletNameMappings": [],
- "urlPatternMappings": ["/*"],
- "name": "Tomcat WebSocket (JSR356) Filter",
- "className": "org.apache.tomcat.websocket.server.WsFilter"
- }, {
- "servletNameMappings": [],
- "urlPatternMappings": ["/*"],
- "name": "hiddenHttpMethodFilter",
- "className": "org.springframework.boot.web.servlet.filter.OrderedHiddenHttpMethodFilter"
- }, {
- "servletNameMappings": [],
- "urlPatternMappings": ["/*"],
- "name": "characterEncodingFilter",
- "className": "org.springframework.boot.web.servlet.filter.OrderedCharacterEncodingFilter"
- }, {
- "servletNameMappings": [],
- "urlPatternMappings": ["/*"],
- "name": "httpTraceFilter",
- "className": "org.springframework.boot.actuate.web.trace.servlet.HttpTraceFilter"
- }, {
- "servletNameMappings": [],
- "urlPatternMappings": ["/*"],
- "name": "formContentFilter",
- "className": "org.springframework.boot.web.servlet.filter.OrderedFormContentFilter"
- }],
- "servlets": [{
- "mappings": [],
- "name": "default",
- "className": "org.apache.catalina.servlets.DefaultServlet"
- }, {
- "mappings": ["/"],
- "name": "dispatcherServlet",
- "className": "org.springframework.web.servlet.DispatcherServlet"
- }]
- },
- "parentId": null
- }
- }
- }