2011-09-30 52 views
1

这个问题听起来可能与许多已解决问题类似,但我没有拍摄这个目标。JMX MBean来管理属性的动态集合

我即将创建一个MBean,它允许我指定动态的一组键值对。

(这是很容易创建一个解决方案,指定预先定义的一组则params的。但对于动态的)

最相关的代码片段我能找到的CompositeData是使用,TabularData

的API是下一个:

applyNewProperties(Properties props) 

UI是下一个:

的mbean方法applyNewProperties

参数:道具

name1 value1 
name2 value2 
name3 value3 
..... 
namen value n 

的目的是,JMX-connsole将显示它以表格形式:

input name 1 input value 1 
input name 2 input value 2 
input name 3 input value 3 
.... 
input name n input value n 
+0

http://download.oracle.com/javase/6/docs/api/javax/management/modelmbean/ModelMBeanInfo.html – Pavlonator

+0

ModelIMBeanInfo可能有帮助,它的工作 – Pavlonator

+0

没有,CompositeData中似乎更正确的做法:) – Pavlonator

回答

2

最简单的方法可能是创建一个MXBean(这是可用,因为Java 6),它允许你返回类似地图(或完全自定义对象)的对象,然后将它们映射到像CompositeData或TabularData实例那样的Open Types

+0

很确定这不是事实。你的MXBean不能返回一个java.util.Map,它必须被翻译成一个'CompositeData'或'TabularData'类型。 – nilskp

2

Java 7中为我们带来了DynamicMBean的 - https://docs.oracle.com/javase/7/docs/api/javax/management/DynamicMBean.html

我相信这是你想要的。

+0

值得指出的是DynamicMBean从编译时间的角度来看是动态的,但不是从连续的运行时间角度来看。当这个bean被注册时,这些属性将变为静态的,即不注销/重新注册就不能添加和删除属性。 – nilskp