springboot Actuator只需要加入依赖即可使用:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
application.properties 中可以加入以下配置:
# false,表示不敏感,可以随意访问,否则就是做了一些保护,不能随意访问。
endpoints.mappings.sensitive=false
# 敏感方法默认是需要用户拥有ACTUATOR角色,因此,也可以设置关闭安全限制
management.security.enabled=false
# /shutdown这个需要post方式,通过请求来关闭应用。
# 这个操作比较敏感,要想真正生效,需要以下配置:
endpoints.shutdown.enabled=true
# 自定义系统的info信息
info.name=spring boot Application
info.author.name=yawn
info.author.email=com.***n@qq.com
info.date=2017-10-11 16:12
现在在启动应用后,就可以对应用进行监控了,访问以下url
ID | 描述 | Sensitive |
---|---|---|
autoconfig | 显示一个auto-configuration的报告,该报告展示所有auto-configuration候选者及它们被应用或未被应用的原因 | true |
beans | 显示一个应用中所有Spring Beans的完整列表 | true |
configprops | 显示一个所有@ConfigurationProperties的整理列表 | true |
dump | 执行一个线程转储 | true |
env | 暴露来自Spring ConfigurableEnvironment的属性 | true |
health | 展示应用的健康信息(当使用一个未认证连接访问时显示一个简单的’status’,使用认证连接访问则显示全部信息详情) | false |
info | 显示任意的应用信息 | false |
metrics | 展示当前应用的’指标’信息 | true |
mappings | 显示一个所有@RequestMapping路径的整理列表 | true |
shutdown | 允许应用以优雅的方式关闭(默认情况下不启用) | true |
trace | 显示trace信息(默认为最新的一些HTTP请求) | true |
http://localhost:8082/info
{
"name": "spring boot Application",
"date": "2017-10-11 16:12",
"author": {
"name": "yawn",
"email": "com.***n@qq.com"
}
}
http://localhost:8082/mappings
{
"/index": {
"bean": "viewControllerHandlerMapping"
},
"/403": {
"bean": "viewControllerHandlerMapping"
},
"/jsp": {
"bean": "viewControllerHandlerMapping"
},
"/static/**": {
"bean": "resourceHandlerMapping"
},
"/templates/jsp/**": {
"bean": "resourceHandlerMapping"
},
"/**": {
"bean": "defaultServletHandlerMapping"
},
"{[/test]}": {
"bean": "requestMappingHandlerMapping",
"method": "public java.lang.String com.example.demo.controller.TestController.test(org.springframework.ui.Model)"
},
"{[/test2]}": {
"bean": "requestMappingHandlerMapping",
"method": "public java.lang.String com.example.demo.controller.TestController.test2()"
},
"{[/test3]}": {
"bean": "requestMappingHandlerMapping",
"method": "public java.lang.String com.example.demo.controller.TestController.test3(org.springframework.ui.Model)"
},
"{[/test4]}": {
"bean": "requestMappingHandlerMapping",
"method": "public java.lang.Object com.example.demo.controller.TestController.test4(com.example.demo.entity.TestEntity,com.example.demo.entity.Person)"
},
"{[/test5]}": {
"bean": "requestMappingHandlerMapping",
"method": "public java.lang.Object com.example.demo.controller.TestController.test5()"
},
"{[/login],methods=[POST]}": {
"bean": "requestMappingHandlerMapping",
"method": "public java.lang.String com.example.demo.controller.TestController.test5(java.lang.String,java.lang.String,javax.servlet.http.HttpSession)"
},
"{[/test6]}": {
"bean": "requestMappingHandlerMapping",
"method": "public java.lang.Object com.example.demo.controller.TestController.test6()"
},
"{[/error]}": {
"bean": "requestMappingHandlerMapping",
"method": "public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)"
},
"{[/error],produces=[text/html]}": {
"bean": "requestMappingHandlerMapping",
"method": "public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)"
},
"{[/loggers/{name:.*}],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}": {
"bean": "endpointHandlerMapping",
"method": "public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.LoggersMvcEndpoint.get(java.lang.String)"
},
"{[/loggers/{name:.*}],methods=[POST],consumes=[application/vnd.spring-boot.actuator.v1+json || application/json],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}": {
"bean": "endpointHandlerMapping",
"method": "public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.LoggersMvcEndpoint.set(java.lang.String,java.util.Map<java.lang.String, java.lang.String>)"
},
"{[/loggers || /loggers.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}": {
"bean": "endpointHandlerMapping",
"method": "public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()"
},
"{[/beans || /beans.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}": {
"bean": "endpointHandlerMapping",
"method": "public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()"
},
"{[/configprops || /configprops.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}": {
"bean": "endpointHandlerMapping",
"method": "public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()"
},
"{[/shutdown || /shutdown.json],methods=[POST],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}": {
"bean": "endpointHandlerMapping",
"method": "public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.ShutdownMvcEndpoint.invoke()"
},
"{[/metrics/{name:.*}],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}": {
"bean": "endpointHandlerMapping",
"method": "public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.MetricsMvcEndpoint.value(java.lang.String)"
},
"{[/metrics || /metrics.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}": {
"bean": "endpointHandlerMapping",
"method": "public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()"
},
"{[/env/{name:.*}],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}": {
"bean": "endpointHandlerMapping",
"method": "public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EnvironmentMvcEndpoint.value(java.lang.String)"
},
"{[/env || /env.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}": {
"bean": "endpointHandlerMapping",
"method": "public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()"
},
"{[/heapdump || /heapdump.json],methods=[GET],produces=[application/octet-stream]}": {
"bean": "endpointHandlerMapping",
"method": "public void org.springframework.boot.actuate.endpoint.mvc.HeapdumpMvcEndpoint.invoke(boolean,javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) throws java.io.IOException,javax.servlet.ServletException"
},
"{[/dump || /dump.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}": {
"bean": "endpointHandlerMapping",
"method": "public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()"
},
"{[/trace || /trace.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}": {
"bean": "endpointHandlerMapping",
"method": "public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()"
},
"{[/autoconfig || /autoconfig.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}": {
"bean": "endpointHandlerMapping",
"method": "public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()"
},
"{[/health || /health.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}": {
"bean": "endpointHandlerMapping",
"method": "public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.HealthMvcEndpoint.invoke(javax.servlet.http.HttpServletRequest,java.security.Principal)"
},
"{[/auditevents || /auditevents.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}": {
"bean": "endpointHandlerMapping",
"method": "public org.springframework.http.ResponseEntity<?> org.springframework.boot.actuate.endpoint.mvc.AuditEventsMvcEndpoint.findByPrincipalAndAfterAndType(java.lang.String,java.util.Date,java.lang.String)"
},
"{[/info || /info.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}": {
"bean": "endpointHandlerMapping",
"method": "public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()"
},
"{[/mappings || /mappings.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}": {
"bean": "endpointHandlerMapping",
"method": "public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()"
}
}
http://localhost:8082/configprops (查看我们配置了的以及默认配置的属性,也可以看出我们还可以配置哪些属性)
{
"endpoints-org.springframework.boot.actuate.endpoint.EndpointProperties": {
"prefix": "endpoints",
"properties": {
"enabled": true,
"sensitive": null
}
},
"management.info-org.springframework.boot.actuate.autoconfigure.InfoContributorProperties": {
"prefix": "management.info",
"properties": {
"git": {
"mode": "SIMPLE"
}
}
},
"metricsEndpoint": {
"prefix": "endpoints.metrics",
"properties": {
"id": "metrics",
"sensitive": true,
"enabled": true
}
},
"spring.jackson-org.springframework.boot.autoconfigure.jackson.JacksonProperties": {
"prefix": "spring.jackson",
"properties": {
"serialization": {},
"propertyNamingStrategy": null,
"defaultPropertyInclusion": null,
"parser": {},
"dateFormat": null,
"deserialization": {},
"generator": {},
"timeZone": null,
"mapper": {},
"locale": null,
"jodaDateTimeFormat": null
}
},
"heapdumpMvcEndpoint": {
"prefix": "endpoints.heapdump",
"properties": {
"path": "/heapdump",
"sensitive": true,
"enabled": true
}
},
"endpoints.cors-org.springframework.boot.actuate.autoconfigure.EndpointCorsProperties": {
"prefix": "endpoints.cors",
"properties": {
"allowedOrigins": [],
"maxAge": 1800,
"exposedHeaders": [],
"allowedHeaders": [],
"allowedMethods": [],
"allowCredentials": null
}
},
"environmentMvcEndpoint": {
"prefix": "endpoints.env",
"properties": {
"path": "/env"
}
},
"environmentEndpoint": {
"prefix": "endpoints.env",
"properties": {
"id": "env",
"sensitive": true,
"enabled": true
}
},
"spring.http.multipart-org.springframework.boot.autoconfigure.web.MultipartProperties": {
"prefix": "spring.http.multipart",
"properties": {
"maxRequestSize": "10MB",
"fileSizeThreshold": "0",
"location": null,
"maxFileSize": "1MB",
"enabled": true,
"resolveLazily": false
}
},
"spring.info-org.springframework.boot.autoconfigure.info.ProjectInfoProperties": {
"prefix": "spring.info",
"properties": {
"build": {
"location": {}
},
"git": {
"location": {}
}
}
},
"auditEventsEndpoint": {
"prefix": "endpoints.auditevents",
"properties": {
"enabled": true
}
},
"traceEndpoint": {
"prefix": "endpoints.trace",
"properties": {
"id": "trace",
"sensitive": true,
"enabled": true
}
},
"metricsMvcEndpoint": {
"prefix": "endpoints.metrics",
"properties": {
"path": "/metrics"
}
},
"infoEndpoint": {
"prefix": "endpoints.info",
"properties": {
"id": "info",
"sensitive": false,
"enabled": true
}
},
"auditEventMvcEndpoint": {
"prefix": "endpoints.auditevents",
"properties": {
"path": "/auditevents",
"sensitive": true,
"enabled": true
}
},
"management.trace-org.springframework.boot.actuate.trace.TraceProperties": {
"prefix": "management.trace",
"properties": {
"include": [
"RESPONSE_HEADERS",
"COOKIES",
"REQUEST_HEADERS",
"ERRORS",
"TIME_TAKEN"
]
}
},
"spring.resources-org.springframework.boot.autoconfigure.web.ResourceProperties": {
"prefix": "spring.resources",
"properties": {
"cachePeriod": null,
"addMappings": true,
"chain": {
"cache": true,
"htmlApplicationCache": false,
"gzipped": false,
"strategy": {
"fixed": {
"enabled": false,
"paths": [
"/**"
],
"version": null
},
"content": {
"enabled": false,
"paths": [
"/**"
]
}
}
},
"staticLocations": [
"/",
"classpath:/META-INF/resources/",
"classpath:/resources/",
"classpath:/static/",
"classpath:/public/"
]
}
},
"management.health.status-org.springframework.boot.actuate.autoconfigure.HealthIndicatorProperties": {
"prefix": "management.health.status",
"properties": {
"order": null
}
},
"healthMvcEndpoint": {
"prefix": "endpoints.health",
"properties": {
"path": "/health"
}
},
"serverProperties": {
"prefix": "server",
"properties": {
"contextParameters": {},
"address": null,
"maxHttpPostSize": 0,
"undertow": {
"maxHttpPostSize": 0,
"bufferSize": null,
"buffersPerRegion": null,
"ioThreads": null,
"workerThreads": null,
"directBuffers": null,
"accesslog": {
"enabled": null,
"pattern": "common",
"prefix": "access_log.",
"suffix": "log",
"dir": "D:\\ideaProject\\demo3\\logs",
"rotate": true
}
},
"tomcat": {
"accesslog": {
"enabled": false,
"pattern": "common",
"directory": "logs",
"prefix": "access_log",
"suffix": ".log",
"rotate": true,
"renameOnRotate": false,
"fileDateFormat": ".yyyy-MM-dd",
"requestAttributesEnabled": false,
"buffered": true
},
"internalProxies": "10\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}|192\\.168\\.\\d{1,3}\\.\\d{1,3}|169\\.254\\.\\d{1,3}\\.\\d{1,3}|127\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}|172\\.1[6-9]{1}\\.\\d{1,3}\\.\\d{1,3}|172\\.2[0-9]{1}\\.\\d{1,3}\\.\\d{1,3}|172\\.3[0-1]{1}\\.\\d{1,3}\\.\\d{1,3}",
"protocolHeader": null,
"protocolHeaderHttpsValue": "https",
"portHeader": "X-Forwarded-Port",
"remoteIpHeader": null,
"basedir": null,
"backgroundProcessorDelay": 30,
"maxThreads": 0,
"minSpareThreads": 0,
"maxHttpPostSize": 0,
"redirectContextRoot": null,
"uriEncoding": null,
"maxConnections": 0,
"acceptCount": 0,
"additionalTldSkipPatterns": []
},
"displayName": "application",
"session": {
"timeout": null,
"trackingModes": null,
"persistent": false,
"storeDir": null,
"cookie": {
"name": null,
"domain": null,
"path": null,
"comment": null,
"httpOnly": null,
"secure": null,
"maxAge": null
}
},
"contextPath": null,
"error": {
"path": "/error",
"includeStacktrace": "NEVER"
},
"ssl": null,
"serverHeader": null,
"useForwardHeaders": null,
"port": 8082,
"maxHttpHeaderSize": 0,
"servletPath": "/",
"jspServlet": null,
"jetty": {
"maxHttpPostSize": 0,
"acceptors": null,
"selectors": null
},
"connectionTimeout": null
}
},
"spring.metrics.export-org.springframework.boot.actuate.metrics.export.MetricExportProperties": {
"prefix": "spring.metrics.export",
"properties": {
"excludes": null,
"statsd": {
"host": null,
"port": 8125,
"prefix": null
},
"includes": null,
"triggers": {},
"enabled": true,
"redis": {
"prefix": "spring.metrics.application.134b1d0d4b1f3ea2a2fc4a26eb94e90b",
"key": "******"
},
"aggregate": {
"prefix": "application.134b1d0d4b1f3ea2a2fc4a26eb94e90b",
"keyPattern": "k.d"
}
}
},
"configurationPropertiesReportEndpoint": {
"prefix": "endpoints.configprops",
"properties": {
"id": "configprops",
"sensitive": true,
"enabled": true
}
},
"healthEndpoint": {
"prefix": "endpoints.health",
"properties": {
"timeToLive": 1000,
"id": "health",
"sensitive": false,
"enabled": true
}
},
"loggersMvcEndpoint": {
"prefix": "endpoints.loggers",
"properties": {
"path": "/loggers"
}
},
"loggersEndpoint": {
"prefix": "endpoints.loggers",
"properties": {
"id": "loggers",
"sensitive": true,
"enabled": true
}
},
"endpoints.metrics.filter-org.springframework.boot.actuate.autoconfigure.MetricFilterProperties": {
"prefix": "endpoints.metrics.filter",
"properties": {
"counterSubmissions": [
"MERGED"
],
"gaugeSubmissions": [
"MERGED"
]
}
},
"spring.thymeleaf-org.springframework.boot.autoconfigure.thymeleaf.ThymeleafProperties": {
"prefix": "spring.thymeleaf",
"properties": {
"excludedViewNames": null,
"cache": false,
"checkTemplate": true,
"prefix": "classpath:/templates/",
"viewNames": null,
"suffix": ".html",
"encoding": "UTF-8",
"enabled": true,
"mode": "HTML5",
"checkTemplateLocation": true,
"templateResolverOrder": null,
"contentType": {
"parameters": {}
}
}
},
"dumpEndpoint": {
"prefix": "endpoints.dump",
"properties": {
"id": "dump",
"sensitive": true,
"enabled": true
}
},
"autoConfigurationReportEndpoint": {
"prefix": "endpoints.autoconfig",
"properties": {
"id": "autoconfig",
"sensitive": true,
"enabled": true
}
},
"endpoints.jmx-org.springframework.boot.actuate.autoconfigure.EndpointMBeanExportProperties": {
"prefix": "endpoints.jmx",
"properties": {
"uniqueNames": false,
"staticNames": {},
"enabled": true,
"domain": ""
}
},
"spring.http.encoding-org.springframework.boot.autoconfigure.web.HttpEncodingProperties": {
"prefix": "spring.http.encoding",
"properties": {
"charset": "UTF-8",
"force": false,
"mapping": null,
"forceRequest": false,
"forceResponse": false
}
},
"shutdownEndpoint": {
"prefix": "endpoints.shutdown",
"properties": {
"id": "shutdown",
"sensitive": true,
"enabled": true
}
},
"beansEndpoint": {
"prefix": "endpoints.beans",
"properties": {
"id": "beans",
"sensitive": true,
"enabled": true
}
},
"managementServerProperties": {
"prefix": "management",
"properties": {
"security": {
"enabled": false,
"roles": [
"ACTUATOR"
],
"sessions": "STATELESS"
},
"address": null,
"port": null,
"addApplicationContextHeader": true,
"contextPath": "",
"ssl": null
}
},
"requestMappingEndpoint": {
"prefix": "endpoints.mappings",
"properties": {
"id": "mappings",
"sensitive": false,
"enabled": true
}
},
"endpoints.health-org.springframework.boot.actuate.autoconfigure.HealthMvcEndpointProperties": {
"prefix": "endpoints.health",
"properties": {
"mapping": {}
}
},
"shutdownMvcEndpoint": {
"prefix": "endpoints.shutdown",
"properties": {
"path": "/shutdown"
}
},
"spring.mvc-org.springframework.boot.autoconfigure.web.WebMvcProperties": {
"prefix": "spring.mvc",
"properties": {
"dateFormat": null,
"servlet": {
"loadOnStartup": -1
},
"staticPathPattern": "/**",
"dispatchOptionsRequest": true,
"dispatchTraceRequest": false,
"locale": null,
"ignoreDefaultModelOnRedirect": true,
"logResolvedException": false,
"async": {
"requestTimeout": null
},
"messageCodesResolverFormat": null,
"mediaTypes": {},
"view": {
"prefix": null,
"suffix": null
},
"localeResolver": "ACCEPT_HEADER",
"throwExceptionIfNoHandlerFound": false
}
},
"diskSpaceHealthIndicatorProperties": {
"prefix": "management.health.diskspace",
"properties": {
"path": "D:\\ideaProject\\demo3\\.",
"threshold": 10485760
}
}
}
http://localhost:8082/trace
[
{
"timestamp": 1507710930293,
"info": {
"method": "GET",
"path": "/env",
"headers": {
"request": {
"host": "localhost:8082",
"connection": "keep-alive",
"user-agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36",
"content-type": "application/json",
"accept": "*/*",
"accept-encoding": "gzip, deflate, br",
"accept-language": "zh-CN,zh;q=0.8",
"cookie": "optimizelyEndUserId=oeu1506501248024r0.08055419825898946; _ga=GA1.1.670033975.1498201816; _gid=GA1.1.333206455.1507599805; JSESSIONID=228C035661689BDEEAFA98C77794E3DC; defaultDoorMap=%7B%22buildingId%22%3A%22root%22%2C%22id%22%3A%2210006%22%7D; showTopTab=%5B%7B%22show%22%3Atrue%2C%22uiSerfName%22%3A%22alarmSite%22%7D%2C%7B%22show%22%3Afalse%2C%22uiSerfName%22%3A%22%22%2C%22tabName%22%3A%22%22%7D%2C%7B%22show%22%3Atrue%2C%22uiSerfName%22%3A%22doorControl.monitor%22%2C%22tabName%22%3A%22%E5%AE%9E%E6%97%B6%E7%9B%91%E6%8E%A7%22%7D%2C%7B%22show%22%3Afalse%2C%22uiSerfName%22%3A%22%22%2C%22tabName%22%3A%22%22%7D%2C%7B%22show%22%3Afalse%2C%22uiSerfName%22%3A%22%22%2C%22tabName%22%3A%22%22%7D%2C%7B%22show%22%3Afalse%2C%22uiSerfName%22%3A%22%22%2C%22tabName%22%3A%22%22%7D%2C%7B%22show%22%3Afalse%2C%22uiSerfName%22%3A%22%22%2C%22tabName%22%3A%22%22%7D%2C%7B%22show%22%3Afalse%2C%22uiSerfName%22%3A%22%22%2C%22tabName%22%3A%22%22%7D%2C%7B%22show%22%3Afalse%2C%22uiSerfName%22%3A%22%22%2C%22tabName%22%3A%22%22%7D%2C%7B%22show%22%3Afalse%2C%22uiSerfName%22%3A%22%22%2C%22tabName%22%3A%22%22%7D%2C%7B%22show%22%3Afalse%2C%22uiSerfName%22%3A%22%22%2C%22tabName%22%3A%22%22%7D%5D"
},
"response": {
"X-Application-Context": "application:8082",
"Content-Type": "application/vnd.spring-boot.actuator.v1+json;charset=UTF-8",
"Transfer-Encoding": "chunked",
"Date": "Wed, 11 Oct 2017 08:35:30 GMT",
"status": "200"
}
},
"timeTaken": "6"
}
},
{
"timestamp": 1507710923743,
"info": {
"method": "POST",
"path": "/env",
"headers": {
"request": {
"host": "localhost:8082",
"connection": "keep-alive",
"content-length": "2",
"origin": "null",
"user-agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36",
"content-type": "application/json",
"accept": "*/*",
"accept-encoding": "gzip, deflate, br",
"accept-language": "zh-CN,zh;q=0.8",
"cookie": "optimizelyEndUserId=oeu1506501248024r0.08055419825898946; _ga=GA1.1.670033975.1498201816; _gid=GA1.1.333206455.1507599805; JSESSIONID=228C035661689BDEEAFA98C77794E3DC; defaultDoorMap=%7B%22buildingId%22%3A%22root%22%2C%22id%22%3A%2210006%22%7D; showTopTab=%5B%7B%22show%22%3Atrue%2C%22uiSerfName%22%3A%22alarmSite%22%7D%2C%7B%22show%22%3Afalse%2C%22uiSerfName%22%3A%22%22%2C%22tabName%22%3A%22%22%7D%2C%7B%22show%22%3Atrue%2C%22uiSerfName%22%3A%22doorControl.monitor%22%2C%22tabName%22%3A%22%E5%AE%9E%E6%97%B6%E7%9B%91%E6%8E%A7%22%7D%2C%7B%22show%22%3Afalse%2C%22uiSerfName%22%3A%22%22%2C%22tabName%22%3A%22%22%7D%2C%7B%22show%22%3Afalse%2C%22uiSerfName%22%3A%22%22%2C%22tabName%22%3A%22%22%7D%2C%7B%22show%22%3Afalse%2C%22uiSerfName%22%3A%22%22%2C%22tabName%22%3A%22%22%7D%2C%7B%22show%22%3Afalse%2C%22uiSerfName%22%3A%22%22%2C%22tabName%22%3A%22%22%7D%2C%7B%22show%22%3Afalse%2C%22uiSerfName%22%3A%22%22%2C%22tabName%22%3A%22%22%7D%2C%7B%22show%22%3Afalse%2C%22uiSerfName%22%3A%22%22%2C%22tabName%22%3A%22%22%7D%2C%7B%22show%22%3Afalse%2C%22uiSerfName%22%3A%22%22%2C%22tabName%22%3A%22%22%7D%2C%7B%22show%22%3Afalse%2C%22uiSerfName%22%3A%22%22%2C%22tabName%22%3A%22%22%7D%5D"
},
"response": {
"X-Application-Context": "application:8082",
"Allow": "GET",
"status": "405"
}
},
"timeTaken": "4"
}
}
]
http://localhost:8082/env
http://localhost:8082/beans