Altova MapForce 2025 Enterprise Edition

Exemple : appeler un service Web SOAP

Accueil Préc Haut Suivant

Cet exemple vous montre comment interroger un service horaire Web en utilisant une constante en tant qu'entrée. Le service Web lui-même a été mis en place en utilisant MapForce. Nous procédons ici de la sorte pour exécuter une démonstration ; vous pouvez mettre en place le service Web avec toute autre technologie prenant en charge un protocole compatible.

 

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

Pour voir comment le service Web est mis en place :

1.Choisir Fichier | Ouvrir et sélectionner le fichier TimeService.mfp dans le dossier <Documents>\Altova\MapForce2025\MapForceExamples\Timeservice. Les fichiers associés avec le projet sont chargés dans la fenêtre Projet.

mf_timeservice_01

2.Double-cliquer sur l'enregistrement getCityTime.mfd dans la fenêtre de projet.

mf_timeservice_02

 

Le mappage getCityTime.mfd accepte un nom de ville en tant qu'entrée et retourne l'heure actuelle dans la sortie. Si la ville n'est pas "Boston", une erreur WSDL est retournée. Le mappage prend les données d'entrée depuis le fichier getCityTimeRequest.xml disponible dans le répertoire <Documents>\Altova\MapForce2025\MapForceExamples\TimeService. Si vous double-cliquez sur le composant getCityTimeSoapIn, vous pourrez constater que ce fichier est défini en tant que source de donnés.

 

En ce qui concerne notre exemple, nous partons du principe que ce projet de service Web particulier 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 de démonstration en ligne est disponible à cet effet sous http://nanonull.com/TimeService/TimeService.asmx. Pour voir des exemples de la création de ce type de services Web avec MapForce, voir Générer des Services Web SOAP (Java).

Pour ajouter le service Web au mappage :

1.Choisir Fichier | Nouveau, cliquer sur l'icône Mappage et confirmer avec OK.

2.Choisir l'option de menu Insérer | Fonction de service Web ... ou cliquer sur la touche de la barre d'outils ic-wsdl-func.

3.Cliquer sur Parcourir pour sélectionner le fichier de définition WSDL ; sélectionner TimeService.wsdl depuis le répertoire TimeService, puis cliquer sur la touche Ouvrir.

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

mf_timeservice_03

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

mf_timeservice_04

6.Ne pas modifier les Paramètres d'appel WSDL, et cliquer sur OK. Pour plus d'informations, voir Paramètres d'appel Service Web.

 

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

mf_timeservice_05

La section gauche du composant définit l'entrée de données (SoapIn), alors que le côté droit définit la sortie de données (SoapOut), qui peut aussi inclure une section d'erreurs, si une erreur a été définie dans le fichier .wsdl.

Pour appeler le service Web :

1.Insérer le composant qui fournira les données d'entrée, par exemple une constante, un texte ou un composant de schéma. En ce qui concerne notre exemple, insérer un composant de constante et saisir "Boston" en tant que le string d'entrée.

mf_timeservice_06

2.Connecter la constante à l'item n0:city.

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

4.Connecter n0:getCityTimeResult au composant de sortie.

mf_timeservice_07

5.Cliquer avec la touche de droite sur le composant "getCityTime" dans le mappage et choisir Propriétés. Le dialogue Paramètres d'appel de Service Web s'ouvre. Saisir http://nanonull.com/TimeService/TimeService.asmx dans le champ URL (il s'agit d'un service Web en ligne de démonstration créé avec MapForce, voir Mettre en place des services Web SOAP).

6.Cliquer sur l'onglet Sortie. Comme illustré ci-dessous, l'heure actuelle à Boston est affichée dans le volet Sortie.

mf_timeservice_08

Note :La valeur d'entrée de la fonction de service Web prend le dessus sur la source de données du mappage d'origine. Par exemple, la constante "Boston" prend le dessus sur le fichier de source de données getCityTimeRequest.xml dans le mappage original.

Pour mapper les erreurs de service Web :

1.Sélectionner Insérer | Exception, ou cliquer sur la touche de la barre d'outils Exception ic-except.

2.Mapper l'item Fault: sur l'item throw du composant d'exception.

3.Mapper l'item n0:errorText sur l'item error-text du composant d'exception.

mf_timeservice_09

© 2018-2024 Altova GmbH