unregister mbean error com.alibaba.druid:type=DruidStatService
最近碰到一个环境配置上的问题, 折腾了半天时间, 特拿出来和大家分享.
系统抛出的错误如下:
unregister mbean error javax.management.InstanceNotFoundException: com.alibaba.druid:type=DruidStatService
Java项目中使用druid对数据库连接池进行管理
在pom.xml 中有如下配置:
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.6</version> </dependency>
在本地及测试环境均无问题,但是上了centos环境后,每当tomcat第一次启动时,日志未报错,但是页面总是出不来,在关闭tomcat时,看日志,发现报错如下:
[ERROR]-[Thread: localhost-startStop-1]-[com.alibaba.druid.stat.DruidStatService.unregisterMBean()]: unregistermbeanerrorjavax.management.InstanceNotFoundException:com.alibaba.druid:type=DruidStatService atcom.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(DefaultMBeanServerInterceptor.java:1095)
经过多次测试,最终解决方案如下:
修改tomcat的bin目录下的catalina.sh文件,在# OS specific support. $var_must_ be set to either true or false.与cygwin=false之间加上
JAVA_OPTS="-Ddruid.registerToSysProperty=true"即可
#use nohup so that the Tomcat process will ignore any hangup #signals. Default is "false" unless running on HP-UX in which #case the default is "true" # 0S specific support. $var _must_ be set to either true or false. JAVA_OPTS-"-Ddruid.registerToSysProperty-true" cygwin=false darwin=false os400-false hpux=false case "`uname`" in CYGWIN*)cygwin=true;; Darwin*) darwin-true;; 0S400*) os400-true;; HP-UX*) hpux=true;; esac # resolve links - $0 may be a softlink PRG="$0"
保存退出后,tomcat部署项目启动一次就好,不再报此错。
类似的Tomat报错异常:
ERROR [com.alibaba.druid.stat.DruidDataSourceStatManager] – unregistermbeanerrorjavax.management.InstanceNotFoundException:com.alibaba.druid:type=DruidDataSou rceStatatcom.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean………
原因:在一台服务器上启动了两个tomcat,两个tomcat都是用druid。
解决方案:
修改Tomcat 下的 catalina.sh:
增加此句代码:JAVA_OPTS=”-Ddruid.registerToSysProperty=true”