为什么JBoss JMX控制台没有显示Spring定义的MBean的描述?

时间:2010-09-24 08:57:39

标签: java spring jboss jmx

我有一个使用Spring注释通过JMX公开的Spring bean,但是参数名称仍然是空白的,并且操作和参数描述没有显示出来。可以在不诉诸繁琐的XML定义文件的情况下解决这个问题吗?

我在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应用程序上下文定义从上面链接的博客文章中逐字复制。

1 个答案:

答案 0 :(得分:1)

您需要为MBeanExporter定义正确的MetadataMBeanInfoAssembler:

<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>