2010-09-24 66 views
2

我有一個Spring bean使用Spring註解通過JMX公開,但參數名稱保持空白,操作和參數描述不顯示。這可以解決,而不訴諸繁瑣的XML定義文件?爲什麼JBoss JMX控制檯不能顯示Spring定義的MBean的描述?

我按照a blog post密切執行此操作。這裏是我的簡化代碼:

import org.springframework.jmx.export.annotation.ManagedOperation; 
import org.springframework.jmx.export.annotation.ManagedOperationParameter; 
import org.springframework.jmx.export.annotation.ManagedOperationParameters; 
import org.springframework.jmx.export.annotation.ManagedResource; 

@ManagedResource(objectName="group:name=foo", description="Does a lot of fooing") 
public class Foo { 
    @ManagedOperation(description="Changes the period of the given task and applies it immediately if the task is enabled.") 
    @ManagedOperationParameters({ 
     @ManagedOperationParameter(name="index", description="the 0-based index of the fizzle"), 
     @ManagedOperationParameter(name="baz", description="the baz value to set on the fizzle") 
    }) 
    public void changeFizzle(int index, long baz) { 
     // impl 
    } 
} 

相關的spring應用程序上下文定義是逐字地從上面鏈接的博客文章複製的。

+0

這對我來說工作正常。不是說這對你有很大的幫助,但至少你知道它可以工作。你使用的是哪個版本的Spring和JBoss? – skaffman 2010-09-27 15:56:46

回答

1

您需要定義正確的MetadataMBeanInfoAssembler的喜歡本作的類MBeanExporter:

<property name="assembler"> 
    <bean id="assembler" class="org.springframework.jmx.export.assembler.MetadataMBeanInfoAssembler"> 
    <property name="attributeSource"> 
     <bean class="org.springframework.jmx.export.annotation.AnnotationJmxAttributeSource" /> 
    </property> 
    </bean> 
</property> 
+0

這個答案看起來很有希望,但是因爲我不再和JBoss一起工作,並且在我問這個問題時已經轉換了公司,所以我無法驗證它是否可行。所以我想我不應該接受這個答案,但我會贊成它。 – 2013-07-19 07:59:03

相關問題