...
<bean id="jmxTestCmis"
class="org.esupportail.application.service.fileStorage.JmxTestCmisImpl">
...
</bean>
<!-- JMX to control CMIS -->
<bean id="exporter" class="org.springframework.jmx.export.MBeanExporter" >
<property name="beans">
<map>
<entry key="bean:name=testCmis" value-ref="jmxTestCmis"/>
</map>
</property>
</bean>
La classe métier cliente JMX
Avant toute opération sur les fichiers elle contrôle la disponibilité du serveur CMIS et affiche un message d'erreur s'il n'est pas actif.
| Bloc de code |
|---|
public class CmisFileStorageServiceImpl {
....
/**
* Bean to test if cmis is ready.
*/
private JmxTestCmis jmxTestCmis;
public void afterPropertiesSet() throws Exception {
....
Assert.notNull(this.jmxTestCmis,
"property jmxTestCmis of class " + this.getClass().getName() + " can not be null");
}
...
/**
* @param jmxTestCmis the jmxTestCmis to set
*/
public void setJmxTestCmis(final JmxTestCmis jmxTestCmis) {
this.jmxTestCmis = jmxTestCmis;
}
public FileStorage getFile(...) throws IOException {
FileStorage file = null;
if (jmxTestCmis.getCmisIsReady()) {
file= ...;
} else {
System.err.println("--------le service CMIS est indisponible");
}
return file;
}
}
|
...
L'activation du client JMX
LSi l'application écoute le port jmx 9656 (,par exemple)
Au , au lancement de l'application, on aura les options suivantes:
| Bloc de code |
|---|
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9656 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false |
Activer l'agent JMX sur l'application
...
administrée
L'agent JMX doit être activé sur l'application délivrant le service CMIS
...