MBean加载不上的问题(自己开发的MBean)

这个问题是我项目中遇到的一个问题,在ItEye问问中也问过,不过没有得到回复。有ItEye的朋友也遇到了这个问题写信问我,我在这里再描述下这个问题还有解决的办法。

问题描述:

我在sailfin启动JMXserver(自己开发的)加载 MBean(自己开发的)加载不上。 (tomacat也是同样效果)
在控制台写了个main方法直接启动JMXServer 就一切正常 真是怪呀。。。。
报的异常是这样的:

1.javax.management.ReflectionException: <SPAN style="COLOR: #ff0000">The MBean class could not be loaded by the default loader repository   
2.</SPAN> at com.sun.jmx.mbeanserver.MBeanInstantiator.findClassWithDefaultLoaderRepository(MBeanInstantiator.java:71)   
3. at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.createMBean(DefaultMBeanServerInterceptor.java:259)   
4. at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.createMBean(DefaultMBeanServerInterceptor.java:199)   
5. at com.sun.jmx.mbeanserver.JmxMBeanServer.createMBean(JmxMBeanServer.java:393)   

 

com.hundsun.mproxy.service.MProxy是我自己开发的 MBean

问题是我自己开发的mBean 在sailfin或者tomcat运行的情况下不能注册到(我自己开发的JMXserver中)。
正常application  run就能注册到(我自己开发的JMXserver中)。

我后来解决的方案(仅供参考):

后来我将MBean(自己开发的)直接注册到了sailfin的JMXserver中。(tomcat也是直接注册到tomcat的本身的JMXServer中)

这样就解决了这个问题。

 

*注:sailfin是可以直接在4848登陆的控制界面的MBean中部署的,部署之后会生成一个"名字",用这个"名字"就可以去sailfin自带的JMXServer中访问你自己的mBean了。

你可能感兴趣的:(Class,jmx,by,default,loader,Mbean,Mbean,could,loaded,the,the,be,not)