解决ERROR - unregister mbean error javax.management.InstanceNotFoundException: com.alibaba.druid:type=

时间:2023-03-09 03:07:22
解决ERROR - unregister mbean error javax.management.InstanceNotFoundException: com.alibaba.druid:type=

https://blog.csdn.net/chengsi101/article/details/72627062

https://www.cnblogs.com/gradven/p/6323195.html

项目中使用druid对数据库连接池进行管理,在本地及测试环境均无问题,但是上了生产环境后,每当tomcat第一次启动时,日志未报错,但是页面总是出不来,在关闭tomcat时,看日志,发现报错如下:

ERROR [com.alibaba.druid.stat.DruidDataSourceStatManager] – unregister mbean error
javax.management.InstanceNotFoundException: com.alibaba.druid:type=DruidDataSourceStat
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean………

网上找了各种方法,但都说的有些模糊,经过多次测试,终于解决,方法如下:

修改tomcat的bin目录下的catalina.sh文件,在# OS specific support.  $var _must_ be set to either true or false.与cygwin=false之间加上

JAVA_OPTS="-Ddruid.registerToSysProperty=true"即可,如图所示:

解决ERROR - unregister mbean error javax.management.InstanceNotFoundException: com.alibaba.druid:type=

tomcat以后部署项目启动一次就好,不再报此错。

问题:

启动tomcat报错:

Tomat报出一下异常:
ERROR [com.alibaba.druid.stat.DruidDataSourceStatManager] – unregister mbean error
javax.management.InstanceNotFoundException: com.alibaba.druid:type=DruidDataSourceStat
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean………

原因:在一台服务器上启动了两个tomcat,两个tomcat都是用druid。

解决方案:

修改Tomcat 下的 catalina.sh:

增加此句代码: JAVA_OPTS=”-Ddruid.registerToSysProperty=true”

在查找的过程中发现了,在一篇对于开发过程中常见问题的介绍:https://github.com/alibaba/druid/wiki/常见问题