我使用的是Spring 2.5版的JMX,我使用的是JMX 如下图所示..
@ManagedOperation(description = "Mark the Entry corresponding ABC flow")
@ManagedOperationParameters(value = {
@ManagedOperationParameter(name = "def", description = "Ids of the entries that needs to be STOP"),
@ManagedOperationParameter(name = "Comments", description = "Note on why these entries are being marked as stop") })
public void abcstop(String def, String gtr){
StringBuffer gfhtrPresent= jmxService.abcd(Ids, comments);
if(idsNotPresent.length()>0)
throw new IOARuntimeException("<font color=red><b>No data found for the following id/id's </b></font>"+idsNotPresent);
}
现在我想删除@Managedoperation annaotation并希望用XML配置它,请告诉我如何配置@Managedoperation,因为我想从xml本身运行相同的功能,请指教。
实现此目的的一种方法是实现您自己的MBeanInfoAssembler(或其中一个标准的子类)。请告知有没有其他方法可以实现这一点,任何早期的帮助将不胜感激。
答案 0 :(得分:0)
最简单的方法可能是使用InterfaceBasedMBeanInfoAssembler
。
首先,将JMX接口公开为代码中明确定义的接口。 (无论如何,拥有这样的接口可能是一个好主意。)然后,您只需告诉InterfaceBasedMBeanInfoAssembler
通过其managedInterfaces
属性公开特定接口(或接口)。除了首先定义接口(您可能已经或可能没有这样做)之外,其余部分完全可以从XML配置中完成。但是你无法以这种方式提供非常详细的元数据;这是一种权衡。
如果您要坚持使用MetadataMBeanInfoAssembler
,您可以尝试自定义JmxAttributeSource
,这样您只需重新发明一半轮而不是整个很多...