Bonjour,
Voici mon problème, j'ai un service central dans mon application web :
MyServiceImpl qui implemente l'interface MyService.
Ce service permet de me renvoyer certaines informations communes à tous les controllers dont voici les méthodes définies dans l'interface :
mon implémentation de ce service a donc un setter pour le message informatif, et un getter et un setter pour l'heure de début de la plage de maintenance et l'heure de fin de la plage de maintenance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 public String getMessageInformatif(); public boolean isPlageHoraireMaintenance();
j'ai donc dans mon implémentation les méthodes suivantes :
Je voudrais pouvoir modifier ces valeurs en JMX, j'ai donc le fichier de configuration spring suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 @Override public String getMessageInformatif() {...} public void setMessageInformatif(String message) {...} @Override public boolean isPlageHoraireMaintenance() {...} public void setDebutPlageMaintenance(String heure) {...} public String getDebutPlageMaintenance() {...} public void setFinPlageMaintenance(String heure) {...} public String getFinPlageMaintenance() {...}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 <bean id="myService" class="net.mycie.MyServiceImpl" > ... </bean> <!-- Publish Services as JMX --> <bean id="exporter" class="org.springframework.jmx.export.MBeanExporter"> <property name="server" ref="mbeanServer" /> <property name="beans"> <map> <entry key="mycie:name=myservice" value-ref="myService" /> ... </map> </property> <property name="assembler"> <bean class="org.springframework.jmx.export.assembler.MethodNameBasedMBeanInfoAssembler"> <property name="methodMappings"> <props> ... <prop key="mycie:name=myservice">getMessageInformatif,setMessageInformatif,isPlageHoraireMaintenance,setDebutPlageMaintenance,getDebutPlageMaintenance,setFinPlageMaintenance,getFinPlageMaintenance</prop> </props> </property> </bean> </property> </bean>
Quand je démarre la JConsole, je ne trouve que les deux méthodes de l'interface dans mon bean JMX, que j'utilise la méthode managedMethods ou methodMappings.
Avez vous une idée de pourquoi ?
La seule façon que j'ai trouvé de publier mes méthodes est de les déclarer dans l'interface. Ce qui ne me plaît pas beaucoup.
N'hésitez pas à me formuler toute remarque si je n'ai pas été clair.
Je vous remercie par avance.
Partager