2011-09-30 49 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