2010-09-24 3 views
2

J'ai un bean Spring qui est exposé via JMX en utilisant des annotations Spring, mais les noms des paramètres restent vides et les descriptions des opérations et des paramètres n'apparaissent pas. Cela peut-il être corrigé sans recourir à des fichiers de définition XML fastidieux? Je l'ai mis en œuvre de près suivant a blog postPourquoi la console JBoss JMX n'affiche-t-elle pas les descriptions des MBeans définis par Spring?

Voici mon code simplifié:

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

La définition de contexte d'application de printemps pertinente est copiée textuellement à partir de l'article de blog lié ci-dessus.

+0

Il fonctionne très bien pour moi. Non que cela vous aide beaucoup, mais au moins vous savez que cela peut fonctionner. Quelle version de Spring et JBoss utilisez-vous? – skaffman

Répondre

1

Vous devez définir le MetadataMBeanInfoAssembler correct comme celui-ci pour le 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

Cette réponse semble prometteuse, mais comme je ne travaille plus avec JBoss et que j'ai changé d'entreprise depuis que j'ai posé la question, je ne peux pas vérifier si cela fonctionne. Donc je suppose que je ne devrais pas accepter cette réponse, mais je vais l'augmenter. –

Questions connexes