Altova MapForce 2026 Enterprise Edition

Exemple : Appeler un service Web SOAP

Accueil Préc Haut Suivant

Cet exemple vous montre comment interroger un service de temps Web à l'aide d'une constante comme entrée. Le service Web lui-même a été implémenté à l'aide de MapForce. Il s'agit d'une démonstration. Vous pouvez implémenter le service Web à l'aide de toute autre technologie prenant en charge un protocole compatible.

 

Le mappage illustré ci-dessous fait partie du projet de mappage TimeService.mfp, disponible dans le dossier <Documents>\Altova\MapForce2026\MapForceExamples\TimeService. Le fichier de projet TimeService2.mfp disponible dans le dossier <Documents>\Altova\MapForce2026\MapForceExamples\TimeserviceWsdl2 prend en charge WSDL 2.0.

Pour afficher la manière dont le service Web est implémenté :

1.Sélectionnez Fichier | Ouvrir, puis sélectionnez le fichier TimeService.mfp dans le dossier <Documents>\Altova\MapForce2026\MapForceExamples\Timeservice. Les fichiers associés au projet sont chargés dans la fenêtre Projet.
mf_timeservice_01
2.Double-cliquez sur l'entrée getCityTime.mfd dans la fenêtre du projet.
mf_timeservice_02

 

Le mappage getCityTime.mfd accepte un nom de ville comme entrée et renvoie l'heure actuelle dans la sortie. Si la ville n'est pas « Boston », une erreur WSDL est renvoyée. Le mappage prend les données d'entrée du fichier getCityTimeRequest.xml disponible dans le répertoire <Documents>\Altova\MapForce2026\MapForceExamples\TimeService. Si vous double-cliquez sur le composant getCityTimeSoapIn, vous pouvez voir que ce fichier est défini comme source de données.

 

Pour les besoins de cet exemple, nous supposerons que ce projet de service Web a déjà été compilé et déployé sur un serveur Web réel que vous allez appeler dans les étapes suivantes de cet exemple. Un service en ligne de démonstration est disponible à cette fin à l'adresse http://nanonull.com/TimeService/TimeService.asmx. Pour obtenir des exemples de création de services Web de ce type avec MapForce, voir Générer des services Web SOAP (Java).

Pour ajouter le service Web au mappage :

1.Sélectionnez Fichier | Nouveau, cliquez sur l'icône Mappage et confirmez en cliquant sur OK.

2.Sélectionnez l'option de menu Insérer | Fonction de service Web... ou cliquez sur le bouton ic-wsdl-func de la barre d'outils.

3.Cliquez sur Parcourir pour sélectionner le fichier de définition WSDL ; sélectionnez TimeService.wsdl dans le répertoire TimeService, puis cliquez sur le bouton Ouvrir.

4.Lorsque vous êtes invité à choisir un point de terminaison de service Web, cliquez sur TimeServiceSoap.

mf_timeservice_03

5.Lorsque vous êtes invité à choisir une opération de service Web, cliquez sur getCityTime.

mf_timeservice_04

6.Ne modifiez pas les paramètres d'appel WSDL et cliquez sur OK. Pour plus d'informations, voir Paramètres d'appel de service Web.

 

La fonction de service Web getCityTime est insérée en tant que composant unique. Notez qu'elle représente en réalité les huit composants qui constituent le fichier getCityTime.mfd tel qu'il a été enregistré dans le projet WSDL.

mf_timeservice_05

La partie gauche du composant définit l'entrée de données (SoapIn), tandis que la partie droite définit la sortie de données (SoapOut), qui peut également inclure une section d'erreur, si celle-ci a été définie dans le fichier .wsdl.

Pour appeler le service Web :

1.Insérez le composant qui doit fournir les données d'entrée, par exemple une constante, un texte ou un composant de schéma. Pour les besoins de cet exemple, insérez un composant de constante et entrez « Boston » comme string d'entrée.

mf_timeservice_06

2.Connectez la constante à l'élément n0:city.

3.Insérez un composant de sortie simple (dans le menu Fonction, cliquez sur Insérer sortie).

4.Connectez n0:getCityTimeResult au composant de sortie.

mf_timeservice_07

5.Cliquez avec le bouton droit sur le composant « getCityTime » dans le mappage, puis sélectionnez Propriétés. Le dialogue Paramètres d'appel de Service Web s'ouvre. Entrez http://nanonull.com/TimeService/TimeService.asmx dans la zone URL (il s'agit d'un service Web en ligne de démonstration créé avec MapForce, voir Implémentation des services Web SOAP).

6.Cliquez sur le volet Sortie. Comme illustré ci-dessous, l'heure actuelle à Boston s'affiche dans le volet Sortie.

mf_timeservice_08

Note : la valeur d'entrée de la fonction de service Web a priorité sur la source de données du mappage d'origine. Par exemple, la constante « Boston » a priorité sur le fichier de source de données getCityTimeRequest.xml dans le mappage d'origine.

Pour mapper les erreurs du service Web :

1.Sélectionnez Insertion | Exception ou cliquez sur le bouton Exception ic-except de la barre d'outils.

2.Mappez l'élément Fault: à l'élément throw du composant d'exception.

3.Mappez l'élément n0:errorText à l'élément error-text du composant d'exception.

mf_timeservice_09

 

© 2019-2025 Altova GmbH