如何指定jmx mbean将其渲染为jconsole中的树?

Aja*_*jay 5 java jmx jconsole

我的应用程序有一组特定的键,我可以监视值(最小值,最大值等).它看起来非常类似于以下内容:

 public class Data implements Serializable{
    int max, min; //etc..
 }

 public interface HelloMBean{
     String [] getKeys();
     Data getDataForKey(String);
     Data [] getDatas();
 }
Run Code Online (Sandbox Code Playgroud)

但是,我无法使用jconsole看到Keys或Datas属性(我总是看到这些属性的'not available'值).

我应该如何构造我的bean定义,以便它显示为值树?

HelloMBean
|- attributes
     |---- key1
     |---- key2
Run Code Online (Sandbox Code Playgroud)

我想将值(例如:key1.max或key2.min)显示为图形.这可能吗?如果是这样,那么实现它的最佳方法是什么?

谢谢!

kan*_*kan 3

这不是javax.management.openmbean.CompositeData你想要的吗?

它是“不可用”的,因为 jconsole 没有Data可用的类,它不知道有关该类的任何信息。

或者,如果您想将每个“键”创建为单独的属性,您可以自己实现 ,它DynamicMBean返回具有原始类型(如int. 例如,这里有一个例子