我一辈子都无法让 Spring 导出有关我的 JMX bean 的元数据。
我将 Spring 配置如下:
<bean id="attributeSource" class="org.springframework.jmx.export.annotation.AnnotationJmxAttributeSource"/>
<bean id="namingStrategy" class="org.springframework.jmx.export.naming.MetadataNamingStrategy">
<property name="attributeSource" ref="attributeSource"/>
</bean>
<bean id="assembler" class="org.springframework.jmx.export.assembler.MetadataMBeanInfoAssembler">
<property name="attributeSource" ref="attributeSource"/>
</bean>
<bean id="exporter" class="org.springframework.jmx.export.MBeanExporter">
<property name="autodetect" value="true"/>
<property name="namingStrategy" ref="namingStrategy"/>
<property name="assembler" ref="assembler"/>
</bean>
我有一个这样定义的 MXBean 接口:
@ManagedResource
public interface MyMXBean {
@ManagedOperation(description="My description.")
@ManagedOperationParameters({
@ManagedOperationParameter(name = "myParam", description = "My param description.")
})
public void foo(String someParameter);
}
我的 bean 出现在 jconsole 中,但它没有显示关联的元数据,所以我没有得到操作描述或正确的参数名称/描述。
谁能告诉我我做错了什么?