Как указать JMX Mbean для отображения его в виде дерева в Jconsole? - PullRequest
5 голосов
/ 14 сентября 2011

В моем приложении есть определенный набор ключей, для которых я отслеживаю значения (мин, макс и т. Д.). Это выглядит очень похоже на следующее:

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

 public interface HelloMBean{
     String [] getKeys();
     Data getDataForKey(String);
     Data [] getDatas();
 }

Однако я не могу увидеть атрибут Keys или Datas с помощью jconsole (я всегда вижу значение «недоступно» для этих свойств).

Как мне структурировать определение бина так, чтобы оно отображалось в виде дерева значений?

HelloMBean
|- attributes
     |---- key1
     |---- key2

Я хотел бы также отобразить значения (например, key1.max или key2.min) в виде графика. Это возможно? Если это так, что будет лучшим способом достичь этого?

Спасибо!

1 Ответ

3 голосов
/ 11 июня 2012

Разве не javax.management.openmbean.CompositeData, который вы хотите?

Он "недоступен", потому что у jconsole нет класса Data, он ничего не знает о классе.

Или, если вы хотите создать каждый «ключ» как отдельный атрибут, вы можете создать собственную реализацию DynamicMBean, которая возвращает простые структуры с примитивными типами, такими как int. Например. здесь пример .

...