Programmation des extensions serveur
L'interface JMapServerExtension
La première étape pour le développement d'une extension serveur de JMap consiste à écrire une classe qui implémente l'interface JMapServerExtension. Cette interface comporte les 3 méthodes suivantes, appelées à différents moments du cycle de vie de l'extension:
Méthodes de l'interface JMaPServerExtension |
|
Cette méthode est appelée lorsque au démarrage de JMap Server lors du chargement initial des extensions serveur ou quand l'administrateur demande la réinitialisation de l'extension à partir de JMap Admin. Elle sert à initialiser l'extension. Vous pouvez mettre dans cette méthode tout code servant à préparer le fonctionnement de votre extension. Cela pourrait inclure le chargement d'un fichier de paramètres, les vérifications de dépendances, etc.). |
|
Cette méthode est appelée lorsque JMap Server reçoit une requête destinée à votre extension. Vous devez mettre dans cette méthode le code nécessaire au traitement de la requête. De plus, la méthode doit retourner une réponse résultant du traitement de la requête. |
|
Cette méthode est appelée à l'arrêt de JMap Server ou quand l'administrateur demande la réinitialisation de l'extension à partir de JMap Admin. Elle sert à exécuter du code nécessaire à la fermeture de l'extension. Cela pourrait inclure la fermeture de fichiers ou de connexions vers d'autres systèmes. |
Pour effectuer son travail, votre extension peut faire appel aux services offerts par JMap Server. Cela inclut par exemples, les extractions de données spatiales, des accès aux bases de données relationnelles connectées à JMap Server, l'accès au système de journalisation (log files), etc.
Pour plus d'information sur les services offerts par JMap Server, consultez la section Services de JMap Server.
La classe JMapExtensionRequest
Vous devez implémenter une classe qui dérive de la classe JMapExtensionRequest. Cette classe a pour but de fournir toute l'information nécessaire à votre extension serveur pour qu'elle exécute son travail. Les requêtes sont typiquement initialisée du côté client et transmises à JMap Server pour traitement par votre extension. Vous pouvez inclure dans cette classe toutes les propriétés requises en vous assurant qu'elles soient toutes sérialisables.
Lors de l'initialisation de votre extension, le type de votre requête (le nom de classe complet incluant le paquetage) est associé à votre extension. De cette manière, lorsque JMap Server reçoit une requête de ce type, celle-ci est automatiquement aiguillée vers votre extension (méthode processRequest). Pour plus d'information sur la manière de faire le lien entre votre requête et votre extension, consultez la section Déploiement des extensions serveur.
Pour plus d'information sur la programmation des requêtes, consultez la section Communication client-serveur.
La classe JMapExtensionResponse
Vous devez aussi implémenter une classe qui dérive de la classe JMapServerResponse. Cette classe a pour but de fournir les informations résultant de l'exécution de votre requête. La méthode processRequest de votre extension doit retourner une instance de cette classe. Selon la nature de la requête, la réponse peut retourner une grande quantité d'information ou alors simplement un statut d'exécution de la requête (succès, échec, etc.). Vous pouvez inclure toutes les propriété requises dans votre classe en vous assurant qu'elles soient toutes sérialisables.
Pour plus d'information sur la programmation des réponses, consultez la section Communication client-serveur.