javax.management.openmbean.CompositeData嵌套

时间:2014-04-16 08:35:01

标签: jmx mbeans

我们可以在CompositeData中使用SimpleType值,如SimpleType.INTEGER,SimpleType.STRING。我想要嵌套的复合类型,即包含另一种复合类型的复合类型。

我正在使用下面的代码来执行此操作。但它不会在JConsole中显示CompositeData。它为我显示的是CompositeData的元数据,而不是真实的数据。

请告诉我解决问题的方法。

CompositeType type = new CompositeType("My Type", "My Type", new String[]{"item1", "item2"}, new String[]{"item1", "item2"}, new OpenType[]{SimpleType.STRING, SimpleType.STRING});
CompositeData data = new CompositeDataSupport(type, new String[]{"item1", "item2"}, new String[]{"item value 1", "item value 2"});

CompositeType compType = new CompositeType("compData", "compData", new String[]{"compItem1"}, new String[]{"compItem1"}, new OpenType[]{type});
CompositeData compData = new CompositeDataSupport(compType, new String[]{"compItem1"}, new Object[]{data});

2 个答案:

答案 0 :(得分:0)

您是否尝试过Java Mission Control(7u40 +附带)而不是JConsole。我相信它能更好地显示更复杂的数据。

答案 1 :(得分:0)

使用MXBeans处理复合类型要容易得多。你应该从那里开始,如果可以的话。您可以从方法和属性返回更复杂的对象;只要它们遵循MXBean规则,您就可以免费获得所有复杂的类型处理。