Java 如何使用getPlatformMXBean()方法获取寄存器MBean?

Java 如何使用getPlatformMXBean()方法获取寄存器MBean?,java,jmx,Java,Jmx,我已使用注册mbean ManagementFactory.getPlatformMBeanServer().registerMBean(mbean, name); 我可以在jconsole中看到这个mbean。我想通过ManagementFactory.getPlatformMXBean(mbean)获得它,但它抛出异常 mbean不是平台管理接口 我怎样才能得到这个注册bean 下面是代码 public void contextInitialized(ServletContextEvent

我已使用注册mbean

ManagementFactory.getPlatformMBeanServer().registerMBean(mbean, name);
我可以在jconsole中看到这个mbean。我想通过
ManagementFactory.getPlatformMXBean(mbean)
获得它,但它抛出异常

mbean不是平台管理接口

我怎样才能得到这个注册bean

下面是代码

public void contextInitialized(ServletContextEvent servletContextEvent) {
    System.out.println("Registering MBean...");
    try {
        ObjectName name = new ObjectName("common.test:type=MbeanTestImplement");
        MbeanTestInterface mbean = new MbeanTestImplement();
        ManagementFactory.getPlatformMBeanServer().registerMBean(mbean, name);
        MbeanTestImplement mxbean = ManagementFactory.getPlatformMXBean(MbeanTestImplement.class);
        System.out.println(mxbean.getName());
    } catch (Exception e){
        e.printStackTrace();
    }
    //ManagementFactory.getMBeanserverConnection()
}
MbeanTestInterface扩展了PlatformManagedObject,MbeanTestImplement实现了MbeanTestInterface

public interface MbeanTestInterface extends PlatformManagedObject {
    public String getName();
}

public class MbeanTestImplement implements MbeanTestInterface {
    @Override
    public String getName() {
        return MbeanTestImplement.class.toString();
    }

    @Override
    public ObjectName getObjectName() {
        return null;
    }
}

您无法获取MBean实例。但是您可以获取它的属性并调用它的方法。您还可以使用以下方法获取
javax.management.ObjectInstance

ManagementFactory.getPlatformMBeanServer().getObjectInstance(name)

请检查。

请发布您的MBean的代码。@hbelmiro谢谢,我粘贴了我的代码。@NyxLuck我不是JMX人,但是否有可能registerMBean(MBean,name)`正在注册一个
MBean
,而不是方法名称所指示的
MXBean
?另一方面,如果您想要获得
MXBean
name
属性,可以尝试
ManagementFactory.getPlatformMBeanServer().getAttribute(新对象名(“common.test:type=MbeanTestImplement”),“name”)
@madhusudanareddysunapu感谢您的关注。MXBean只是一种特殊的MBean。