Kre*_*reg 5 java regex jmx objectname
我在使用ObjectName表达式匹配访问mbean时遇到问题.以下代码成功设置了布尔值b:
ObjectName objName =
new ObjectName("UnifiedSystem-search Cluster Control l-c:class=myclass");
boolean b = (boolean)myMBeanServer.invoke(objName, "areAlertsSuppressed");
Run Code Online (Sandbox Code Playgroud)
问题是mbeanname根据编码环境而改变.但是,名称只会略有变化,可以通过匹配ObjectNames支持的内置表达式轻松处理.以下代码(在与上面相同的环境中)抛出InstanceNotFoundException:
ObjectName objName =
new ObjectName("UnifiedSystem-search Cluster Control *:class=myclass");
boolean b = (boolean)myMBeanServer.invoke(objName, "areAlertsSuppressed")
Run Code Online (Sandbox Code Playgroud)
任何想法我如何得到我正在寻找的结果?
Gra*_*ray 15
当objectname使用通配符时,无法访问mbean
据我所知,ObjectName该invoke方法不处理任何通配符模式.您将不得不使用该myMBeanServer.queryNames(...)方法来查找与您的模式匹配的bean.然后您可以invoke使用特定名称进行呼叫.
Set<ObjectName> nameSet = myMBeanServer.queryNames(new ObjectName(
"UnifiedSystem-search Cluster Control *:class=myclass"), null);
// then use the first name from the set
// some error checking is needed here to make sure there is a name in the set
myMBeanServer.invoke(nameSet.iterator().next(), "areAlertsSuppressed")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3204 次 |
| 最近记录: |