Giter Site home page Giter Site logo

uavorg / uavstack Goto Github PK

View Code? Open in Web Editor NEW
695.0 88.0 292.0 16.68 MB

UAVStack Open Source All in One Repository

License: Apache License 2.0

Batchfile 0.06% Shell 0.14% Python 0.04% Java 63.94% JavaScript 30.79% HTML 3.44% CSS 1.59% VBScript 0.01%
apm monitor log invokechain topology-visualiztion microservice service-discovery distributed-tracing uav service-governance

uavstack's Introduction

UAVStack

中文版README请点击(https://github.com/uavorg/uavstack/blob/master/README%E4%B8%AD%E6%96%87%E7%89%88.md)

UAVStack as an intelligent service technology stack is the integrated solution to R&D, operation and maintenance. As the acronym of unmanned aerial vehicle, UAV depicts the scenario where the unmanned aerial vehicle hovers under the sky and completes tasks in an intelligent and transparent manner. This stack features AIOps Robot (HIT), full dimension monitoring (UAV.Monitor), application performance management (UAV.APM), service governance (UAV.ServiceGovern), micro-service computing (UAV.MSCP), user experience management (UAV.UEM), etc..

Please visit https://uavorg.github.io/main/ for the open source series of UAVStack, including UAV.Monitor, UAV.APM, UAV.ServiceGovern and UAV.MSCP

Uavstack开源系列

Updating Rules

  • Updates of the open source series (at least once a week) shall synchronize with those of the internal versions.
  • Feature optimization of the open source series (at least once a week) shall synchronize with that of the internal versions as well.
  • New features of the open source series shall be preannounced one week earlier and released within the following week.
  • The standard deployment package shall synchronize with the updated source code (at least once a week).
  • The AllInOne Demo Package is scheduled to be updated once a month. Please download the standard deployment package updated beyond the schedule.

Project Description

uavstack is the All in One source repository of UAVStack.

Parent POM

  • com.creditease.uav.superpom: parent POM that support dependency management and build plugins

UAV.Monitor

  • com.creditease.uav.agent: core of MonitorAgent
  • com.creditease.uav.healthmanager: core features of HealthManager, including Monitoring Data Service,Application/Service Profiling,Real-time Alarm Streaming and AppHub Support Service
  • com.creditease.uav.notifycenter: Notification Center Service
  • com.creditease.uav.monitorframework: core of JVM MonitorFramework for Tomcat,Jetty,SpringBoot,MSCP, etc...
  • com.creditease.uav.monitorframework.agent: JVM MonitorFramework javaagent support
  • com.creditease.uav.monitorframework.dproxy: JVM MonitorFramework javassit support
  • com.creditease.uav.hook.* : JVM MonitorFramework Hooks for application framework, including Dubbo, HttpClients, JAXWS, JDBC, MongoClients, MQ, Redis, etc.
  • com.creditease.uav.loghook: JVM MonitorFramework Hook for log4j and logback
  • com.creditease.uav.tomcat.plus.core: JVM MonitorFramework extension for Tomcat/SpringBoot
  • com.creditease.uav.jetty.plus.core: JVM MonitorFramework extension for Jetty
  • com.creditease.uav.mock.sl4j: mock sl4j
  • com.creditease.uav.ttl: com.alibaba.ttl source code introduction (Alibaba TTL)
  • com.creditease.uav.agent.buildComponent: build POM for MonitorAgent
  • com.creditease.uav.healthmanager.buildComponent: build POM for HealthManager
  • com.creditease.uav.monitorframework.buildComponent: build POM for JVM MonitorFramework

UAV.APM

  • com.creditease.uav.collect: core of APM Data Collection client and server
  • com.creditease.uav.invokechain: Invocation Chain and Log Collection 2.0
  • com.creditease.uav.monitorframework.apm: JVM MonitorFramework extension for APM
  • com.creditease.uav.threadanalysis: one-click thread analysis client and server

UAV.MSCP

  • com.creditease.uav.base: core of MSCP
  • com.creditease.uav.agent.heartbeat: basic features of MSCP, including heartbeat client & server,node remote control,process auto scanning and process keep-alive support
  • com.creditease.uav.annoscan: Fastclasspathscanner source code introduction
  • com.creditease.uav.cache.redis: Redis-based cache framework
  • com.creditease.uav.dbaccess: data store framework for MySQL,OpenTSDB,HBase and MongoDB
  • com.creditease.uav.elasticsearch.client: ElasticSearch-shaded-client to avoid conflicts
  • com.creditease.uav.fastjson: Fastjson source code introduction
  • com.creditease.uav.helper: Util support library
  • com.creditease.uav.httpasync: Http asynchronous communication client based on Apache Http AsyncClient)
  • com.creditease.uav.logging: MSCP logging support
  • com.creditease.uav.messaging: MSCP messaging support that relies on com.creditease.uav.mq and requires no underlying messaging service
  • com.creditease.uav.mq: message queue support based on Rocket MQ
  • com.creditease.uav.notifymanager: component-level MSCP notification support
  • com.creditease.uav.upgrade: remote upgrading support for MSCP client and server

UAV.AppHub

  • com.creditease.uav.console: GUI console of UAVStack with front-end interactive features such as Monitor and APM
  • com.creditease.uav.console.buildComponent: build POM for AppHub

UAV.ServiceGovern

  • Service automatic registration is included in the codes of MOF.
  • Codes for service discovery is included in profile data query of HealthManager.
  • Service downgrading protection (To be updated).
  • Service authorization (To be update).

How to Build

Download the reference Maven dependency repositoryfor Maven Build Failure resulted from the lack of jar packages or the lack of dependent jar packages, and use the downloaded Maven repository instead or copy it into the Maven repository that you are using.

  1. build com.creditease.uav.superpom
cd com.creditease.uav.superpom
mvn clean install 

2 MonitorFramework

cd com.creditease.uav.monitorframework.buildComponent
mvn clean install 

build result

target
-build
-uavmof_1.0_XXXXX.zip
-uavmof_1.0_XXXXX.zip.MD5

  1. MonitorAgent
cd com.creditease.uav.agent.buildComponent
mvn clean install 

build result

target
-build
-uavagent_1.0_XXXXX.zip
-uavagent_1.0_XXXXX.zip.MD5

  1. HealthManager
cd com.creditease.uav.healthmanager.buildComponent
mvn clean install 

build result

target
-build
-uavhm_1.0_XXXXX.zip
-uavhm_1.0_XXXXX.zip.MD5

  1. AppHub
cd com.creditease.uav.console
mvn clean install 

build result

target
-com.creditease.uav.console-1.0.war

Documents

UAV.Monitor+APM

Downloads

UAV.Monitor+APM

Thirdparty Downloads

AllInOne Installation Downloads

The Health Manager (HM) in the AllInOne Installation Package is applicable to development environments, demos and small-scale testing environments. A distributed deployment is recommended for the production environment.

uavstack's People

Contributors

beliefyou8 avatar ddh27 avatar dependabot[bot] avatar fyb007 avatar ieven avatar lbay2015 avatar luning110 avatar noob-noob avatar songjiayu avatar uavstack avatar wanglinlin8 avatar xiang2026 avatar xiaoguoqiang avatar xiaojieshi avatar xxxllluuu avatar zengli00 avatar zhiqiuxie avatar zhuang16384 avatar zwq0317 avatar zxy0728 avatar zxzxzczz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

uavstack's Issues

外部应用通过接口查询数据

目前文档中只是说明了外部应用可以通过类似http://ip:port/hb/query 的接口来获取相应的数据但是并没有详细的说明该用何种请求方式和请求参数才能得到正确的数据,能否提供一个相应的文档来说明这些接口的调用方式呢。当然不只是这个心跳的查询接口

keep the DTD from loading

UAV.Monitor doing app profile need to parse some XML file like web.xml,loading DTD file case java.net.SocketException if app can not connect to the Network

dubbo random port support

uav各位好:
现在有一个dubbo调用链需求:
需求背景:
dubbo支持随机端口-1的这种配置方式,目前UAVStack中收集的dubbo调用链路这种方式只能定位到业务应用服务器ip及端口,不能准确定位到dubbo服务注册在zk中的真实ip和端口。
需求描述:
当有rpc异常的时候,为了方便排除dubbo问题,应该首先定位是否哪个dubbo 服务报错了,而不是去先定位业务应用调用dubbo的机器,这样才能快速定位哪条dubbo调用链导致了异常。而不是 先找业务,在定位dubbo链路,侧重点应该在这边,麻烦考虑一下。谢谢!
辛苦!

查看Tomcat中日志

在tomcat中设置查看日志的路径,但是控制台没有采集到,ma麻烦查看一下
[2017-10-24 19:34:37:361] 94 D com.creditease.agent.feature.logagent.TaildirLogComponent.process(328) ### LogTailComponet stop process.###
[2017-10-24 19:34:37:361] 94 D com.creditease.agent.feature.logagent.TaildirLogComponent.process(255) ###LogTailComponet starting process.###
[2017-10-24 19:34:37:361] 94 D com.creditease.agent.feature.logagent.ReliableTaildirEventReader.updateTailFiles(428) tailfile mapping: 15728648 --> /app/apache-datax-7.0.70---/app/apache-datax-7.0.70-datax-console-/app/logs/com.gome.architect.datax-console/app.log
[2017-10-24 19:34:37:361] 94 D com.creditease.agent.feature.logagent.ReliableTaildirEventReader.updateTailFiles(428) tailfile mapping: 263021 --> /app/apache-datax-7.0.70---/app/apache-datax-7.0.70-manager-/app/apache-datax-7.0.70/logs/catalina.2017-10-24.log
[2017-10-24 19:34:37:361] 94 D com.creditease.agent.feature.logagent.ReliableTaildirEventReader.updateTailFiles(428) tailfile mapping: 782611 --> /app/apache-datax-7.0.70---/app/apache-datax-7.0.70-datax-console-/root/logs/tddl/tddl-dynamic.log
[2017-10-24 19:34:37:361] 94 D com.creditease.agent.feature.logagent.ReliableTaildirEventReader.updateTailFiles(428) tailfile mapping: 782610 --> /app/apache-datax-7.0.70---/app/apache-datax-7.0.70-datax-console-/root/logs/tddl/tddl-stat.log
[2017-10-24 19:34:37:361] 127 D this.addAllTask(60) ### TailFilesMutiJobs tf path:###/app/logs/com.gome.architect.datax-console/app.log
[2017-10-24 19:34:37:361] 127 D this.addAllTask(61) ### TailFilesMutiJobs tf needTail: ###false
[2017-10-24 19:34:37:361] 127 D this.addAllTask(60) ### TailFilesMutiJobs tf path:###/app/apache-datax-7.0.70/logs/catalina.2017-10-24.log
[2017-10-24 19:34:37:361] 127 D this.addAllTask(61) ### TailFilesMutiJobs tf needTail: ###false
[2017-10-24 19:34:37:361] 127 D this.addAllTask(60) ### TailFilesMutiJobs tf path:###/root/logs/tddl/tddl-dynamic.log
[2017-10-24 19:34:37:361] 127 D this.addAllTask(61) ### TailFilesMutiJobs tf needTail: ###false
[2017-10-24 19:34:37:362] 127 D this.addAllTask(60) ### TailFilesMutiJobs tf path:###/root/logs/tddl/tddl-stat.log
[2017-10-24 19:34:37:362] 127 D this.addAllTask(61) ### TailFilesMutiJobs tf needTail: ###false
[2017-10-24 19:34:37:362] 127 D this.startAllT(68) AbstractParallelJob tasks size is zero ##
[2017-10-24 19:34:37:362] 94 D com.creditease.agent.feature.logagent.TaildirLogComponent.process(328) ### LogTailComponet stop process.###
[2017-10-24 19:34:37:362] 63 D com.creditease.uav.messaging.impl.RMQMessageProducer.submit(119) Submit Message SUCCESS: msg {"iDString":"JQ_IVC-922664408679931904-1508844877305","messageType":"JQ_IVC","params":{"JQ_IVC":"[{"action":"JQ_IVC","appgroup":"UNKNOWN","eof":false,"file":"/app/data/uav/ivc/datax-console_8081_ivc.0.log","host":"vm-10-112-178-171","ip":"10.112.178.171","lines":[{"content":"10.112.178.171_8081_1508844876857_26_467;1;N;E;1508844876857;4;10.112.178.171:8081;datax-console;apache.http.Client,mtd=POST;com.taobao.diamond.client.impl.DefaultDiamondSubscriber;checkUpdateDataIds;/diamond-server/config.co;1%3F200","lnum":24312,"timestamp":1508844877305}],"target":"http://10.112.178.171:8081/datax-console---datax-console","time":1508844877305}]"},"systemId":"922664408679931904","timeStamp":1508844877305},topic={"JQ_IVC":["JQ_IVC"]}
[2017-10-24 19:34:37:362] 94 D com.creditease.agent.feature.logagent.TaildirLogComponent.process(255) ###LogTailComponet starting process.###
[2017-10-24 19:34:37:362] 94 D com.creditease.agent.feature.logagent.ReliableTaildirEventReader.updateTailFiles(428) tailfile mapping: 15728648 --> /app/apache-datax-7.0.70---/app/apache-datax-7.0.70-datax-console-/app/logs/com.gome.architect.datax-console/app.log
[2017-10-24 19:34:37:362] 94 D com.creditease.agent.feature.logagent.ReliableTaildirEventReader.updateTailFiles(428) tailfile mapping: 263021 --> /app/apache-datax-7.0.70---/app/apache-datax-7.0.70-manager-/app/apache-datax-7.0.70/logs/catalina.2017-10-24.log
[2017-10-24 19:34:37:362] 94 D com.creditease.agent.feature.logagent.ReliableTaildirEventReader.updateTailFiles(428) tailfile mapping: 782611 --> /app/apache-datax-7.0.70---/app/apache-datax-7.0.70-datax-console-/root/logs/tddl/tddl-dynamic.log
[2017-10-24 19:34:37:362] 94 D com.creditease.agent.feature.logagent.ReliableTaildirEventReader.updateTailFiles(428) tailfile mapping: 782610 --> /app/apache-datax-7.0.70---/app/apache-datax-7.0.70-datax-console-/root/logs/tddl/tddl-stat.log
[2017-10-24 19:34:37:362] 127 D this.addAllTask(60) ### TailFilesMutiJobs tf path:###/app/logs/com.gome.architect.datax-console/app.log
[2017-10-24 19:34:37:362] 127 D this.addAllTask(61) ### TailFilesMutiJobs tf needTail: ###false
[2017-10-24 19:34:37:362] 127 D this.addAllTask(60) ### TailFilesMutiJobs tf path:###/app/apache-datax-7.0.70/logs/catalina.2017-10-24.log
[2017-10-24 19:34:37:362] 127 D this.addAllTask(61) ### TailFilesMutiJobs tf needTail: ###true
[2017-10-24 19:34:37:362] 127 D this.addAllTask(60) ### TailFilesMutiJobs tf path:###/root/logs/tddl/tddl-dynamic.log
[2017-10-24 19:34:37:362] 127 D this.addAllTask(61) ### TailFilesMutiJobs tf needTail: ###false
[2017-10-24 19:34:37:362] 127 D this.addAllTask(60) ### TailFilesMutiJobs tf path:###/root/logs/tddl/tddl-stat.log
[2017-10-24 19:34:37:362] 127 D this.addAllTask(61) ### TailFilesMutiJobs tf needTail: ###false
[2017-10-24 19:34:37:362] 127 D this.startAllT(62) AbstractParallelJob tasks.size(): 1
[2017-10-24 19:34:37:362] 127 D com.creditease.agent.feature.logagent.TailFile.readEvents(267) ### Before Total LineNo:2
[2017-10-24 19:34:37:362] 127 D com.creditease.agent.feature.logagent.RuleFilterFactory$FilterAndRuleChain.doProcess(347) get log event - [Oct 24, 2017 7:34:36 PM com.creditease.tomcat.plus.util.TomcatLog doLog]
[2017-10-24 19:34:37:362] 127 D com.creditease.agent.feature.logagent.RuleFilterFactory$FilterAndRuleChain.doProcess(347) get log event - [INFO: 2017-10-24 19:34:36 [CE] INFO [MonitorServer] com.creditease.monitor.UAVMonitor.record [26(pool-3-thread-1)] UAV.MOF 2017-10-24 19:33:36.847~2017-10-24 19:34:36.858(60): max=1,min=0,avg=0,total=18,req=256,msg=InvokeChain]
[2017-10-24 19:34:37:362] 127 D com.creditease.agent.feature.logagent.RuleFilterFactory$FilterAndRuleChain.doProcess(367) datalog >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> []
[2017-10-24 19:34:37:362] 127 D com.creditease.agent.feature.logagent.TailFileTaskJob.work(75) serverlogs is emptry!!!
[2017-10-24 19:34:37:362] 127 E com.creditease.agent.feature.logagent.TailFileTaskJob.work(84) finally invoked...

Tomcat 7.0.0~7.0.23 has no getStartStopExecutor method

Tomcat 7.0.0~7.0.23 has no getStartStopExecutor method which leads the failure of MOF App installation

java.lang.NoSuchMethodError: org.apache.catalina.Host.getStartStopExecutor()Ljava/util/concurrent/ExecutorService;
at com.creditease.tomcat.plus.interceptor.TomcatPlusIT.onDeployUAVApp(TomcatPlusIT.java:473)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:981)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:472)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1322)

Application container data display of the time and space sandbox

新增时空沙盘应用容器以及进程的性能指标显示,修复ptag查询与拷贝的BUG
1.在选中一个应用实例后,增加显示其对应机器IP的性能指标与其进程的性能指标
2.在时空沙盘查询,BUG在于,进行大类性能指标查询时,不能根据ptag将指标分类显示,如查询RC,不能出现显示结果 修改要点:对ptag加上""查询,并对大类指标进行判断,成功显示RC,RC*等指标。
3.在时空沙盘同一组指标查询时,BUG在于,若同时查询具有ptag的指标与不含ptag的指标时,前者会覆盖掉后者的tags,如同时点击应用实例RC和count性能指标,只显示RC的性能指标,并未显示应用实例的count性能指标。 修改要点:在help.js的merge方法中,拷贝方法为浅拷贝,但对于tags而言,只一个对象,故必须对其进行特殊处理,进行深拷贝。

Log4j hook: conflicts with the log4j-over-slf4j

sometimes, like in springboot, the log4j-over-slf4j is used, see conflicts on method Logger.getLoggerRepository(), the sl4j doesn't have this method.

As our current hook only supports log4j, the detection is appended. Later, we will support sl4j hook

ProfileDataModeling Refactoring

As HIT is using the ProfileDataModel, the better solution is to unify the UAV.Monitor ProfileDataModel with HIT, so refactoring the ProfileDataModeling will make all ProfileDataModeling requirements usage

Support multiple thread dump

Support multiple thread dump.

Thread Analysis add a new "multi-thread dump" button that can invoke multiple thread dumps.

FIX threadanalysis collect task throw NPE

  1. fix ma_pro config jta enable true
  2. fix monitor agent pom.xml to copy jta jar only
  3. fix jta collect task NPE
  4. fix RuntimeNotify description miss current value
  5. fix monitorframework config NetCardIndex default 0

服务流调用访问次数统计需求

uav全体:
您好,关于服务图谱中服务流调用访问次数的需求,目前只支持单个实例的访问次数统计,还有单个实例的总访问次数。但是更重要的是对于整个集群来说,意义更为重大!
需求:增加 集群总调用访问次数,历史访问总次数,同比环比错误率统计,实例同比环比错误率统计。
此需求价值更为重大,希望考虑增加!

指标的环比、同比预警

是否能提供根据指标的环比、同比预警功能,比如在一个时间段内,当前一分钟订单总数比上一分钟下降了50%就预警

日志、调用链路、服务降级需求

uav全体:
您好,有以下三点需求,麻烦考虑加入到uavstack中,完善监控体系:
1.目前在日志模块,无法通过以集群为单位,希望查询整个集群中所涉及的查询内容出现在哪几台实例上。这样可以更快速的定位问题,而不是仅仅通过每一个实例去查询。
2.调用链路的提议:希望把traceId存放到业务日志中,这样就能从日志到调用链路,直接定位问题,整个一套的全维关联。通过关联traceID,能够准确定位调用链路,定位服务实例,定位集群、机器的问题。
3.当定位到问题以后,能不能及时对发生异常的服务进行降级,或者在控制台进行实时降级,优化性能等操作。
希望考虑以上三点需求,辛苦!

oneshotstart_win : apphub start failed after I changed the port from 8080 to 18080

com.creditease.uav.apphub.rest.GUIService$AppInfoCacheThread.run(686) 初始化缓存处理 app 配置加载 :http://192.168.1.103:8080/apphub/uavapp_baseclassmgt/config.properties
[2017-09-17 11:55:22:290] 61 E com.creditease.uav.apphub.rest.GUIService$AppInfoCacheThread.run(706) AppInfoCacheThread run :Server returned HTTP response code: 403 for URL: http://192.168.1.103:8080/apphub/uavapp_baseclassmgt/config.propertiesjava.io.IOException: Server returned HTTP response code: 403 for URL: http://192.168.1.103:8080/apphub/uavapp_baseclassmgt/config.properties
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1876)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1474)
at com.creditease.agent.helpers.PropertiesHelper.downloadProperties(PropertiesHelper.java:129)
at com.creditease.uav.apphub.rest.GUIService$AppInfoCacheThread.run(GUIService.java:687)

request parameters couldn't be got when SlowOperSupporter is opened

问题描述:当request选用ContentType为application/x-www-form-urlencoded类型传递参数时若getInputStream会将参数变为不可获取状态;
解决方案:在创建RequestWrapper时先判断ContentType,若为application/x-www-form-urlencoded则获取ParameterMap。

Dubbo Provider miss the right IP

Dubbo Provider miss the right IP. This issue happens in open source version. the FIX code should be merge into open source version.

Apphub user behavior record add info & fix Apphub ajax assembly params not default

----Apphub user behavior record add info---
我们需要一份户用户在Apphub授权(匹配)的邮箱组和系统列表
1、在用户登录授权时:丰富用户session字段\内容:用户匹配的被授权的邮箱组和系统列表
2、用户行为日志(ulog)丰富字段、JS用户变量(前端同样可以获取登录用户数据)丰富字段

----- fix Apphub ajax assembly params not default----
1、apphub ajax contentType 添加默认类型:application/json; charset=UTF-8
2、原因描述:开启重调用链后,mof会对rs接口进行拦截处理,对没有定义上传参数的ajax提交请求,会使用默认处理。从而导致与rs接口不匹配,最终报错。

SpringBootTomcatPlusIT onAppStop NPE

SpringBootTomcatPlusIT onAppStop NPE.

when springboot stops, sometimes there is an NPE. however, it doesn't matter. we fix this for better stopping.

UAV.Monitor struts2 support

UAV.Monitor add struts2 support:
UAV.Monitor support struts2 deployment descriptor & annotations
UAV.Monitor does not support struts2 Configuration by Convention

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.