2014-01-18 20 views
0

我使用彈簧的JMX版本2.5,其中我使用JMX 如下所示..@Managedoperation替代在XML配置方式在彈簧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

最簡單的方法可能是使用InterfaceBasedMBeanInfoAssembler

首先,將JMX接口公開爲代碼中明確定義的接口。 (無論如何,擁有這樣一個接口可能是一個好主意。)然後,你只需告訴InterfaceBasedMBeanInfoAssembler通過它的managedInterfaces屬性公開一個特定的接口(或多個接口)。除了首先定義接口(您可能已經完成或可能尚未完成),其餘完全可以通過XML配置完成。但是你不能以這種方式提供非常詳細的元數據;這是一個折衷。

如果你要堅持一個MetadataMBeanInfoAssembler,你可以嘗試,而不是一個自定義JmxAttributeSource讓你只重塑一半車輪,而不是一大堆......

+0

非常感謝你能請指教一個例子 – user1633823

+0

任何例子都能幫助我更好地掌握 – user1633823

+0

爲什麼當你問我對最初問題的回答有更多幫助時,你問了一個新問題? http://stackoverflow.com/questions/21179066/replacing-managed-operation-from-xml-itself-in-spring你應該至少在這裏提供了一個鏈接到這個問題。我現在已經更新了其他答案和更多細節。 –