Retourner une réponse Hello world - Cloud - 8.0

ESB SOAP

Version
Cloud
8.0
Language
Français
Product
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Real-Time Big Data Platform
Module
Studio Talend
Content
Création et développement > Systèmes tiers > Composants ESB > Composants ESB SOAP
Gouvernance de données > Systèmes tiers > Composants ESB > Composants ESB SOAP
Qualité et préparation de données > Systèmes tiers > Composants ESB > Composants ESB SOAP
Last publication date
2024-02-21

Ce scénario s'applique uniquement à Talend ESB, Talend Data Services Platform, Talend MDM Platform, Talend Real-Time Big Data Platform et à Talend Data Fabric.

Pour plus de technologies supportées par Talend, consultez Composants Talend.

Dans ce scénario, un Job fournisseur et un Job consommateur sont nécessaires. Les Jobs suivants, construits sur les composants de la famille ESB/Web Service implémentent des services Web définis dans le nœud Services du Repository.

  • Dans la vue Repository, cliquez-droit sur le nœud Services et, dans le menu contextuel, sélectionnez Create Service.
  • Dans l'assistant qui s'ouvre, saisissez ServiceRequest dans le champ Name et cliquez sur Next.
  • Sélectionnez l'option Create new WSDL
  • Cliquez sur Finish pour valider la création. Le service s'ouvre dans l'espace de modélisation graphique.
  • Cliquez-droit sur le port ServiceRequestPort dans le squelette WSDL et sélectionnez Show properties. Dans le champ Address, spécifiez l'adresse où vous souhaitez publier le service, par exemple, http://127.0.0.1.8088/esb/provider.
  • Cliquez sur le type de port ServiceRequestPortType dans le squelette WSDL. Modifiez son nom en TEST_ProviderJobSoapBinding.
  • Cliquez sur l'opération ServiceRequestOperation dans le squelette WSDL. Modifiez son nom en invoke(anyType):anyType.
  • Sauvegardez le fichier WSDL. Le nouveau service Web défini s'affiche sous le nœud Services de la vue Repository.
  • Sous le nœud Services, cliquez-droit sur ServiceRequest 0.1 et sélectionez Import WSDL Schemas. Cette option importe les métadonnées WSDL du service dans le Repository, dans Metadata > File XML, ce qui vous permet de partager les informations des opérations à travers les services et les autres composants.

Le Job fournisseur comprend les composants suivants : un tESBProviderRequest, un tESBProviderResponse, un tXMLMap et deux tLogRow.

  • Déposez les composants suivants de la Palette dans l'espace de modélisation graphique : un tESBProviderRequest, un tESBProviderResponse, un tXMLMap et deux tLogRow.

  • Dans l'espace de modélisation graphique, double-cliquez sur le composant tESBProviderRequest_1 afin d'afficher sa vue Basic settings dans Component.

  • Sélectionnez Repository dans la liste Property Type et cliquez sur le bouton [...] afin de choisir le service, la granularité du nom du port et l'opération.

  • Cliquez sur OK.

  • Cliquez sur le bouton [...] à côté du champ Edit schema pour voir son schéma.

  • Connectez le tESBProviderRequest_1 au composant tLogRow_1.

  • Double-cliquez sur le tLogRow_1 afin d'afficher sa vue Basic settings dans Component.

  • Cliquez sur le bouton [...] à côté du champ Edit Schema et définissez le schéma comme suit.

  • Connectez le tLogRow_1 au tXMLMap_1.

  • Reliez le tXMLMap_1 et tLogRow_2 et nommez la connexion payload.

  • Dans l'espace de modélisation graphique, double-cliquez sur le tXMLMap_1 afin d'ouvrir le Map Editor.

  • Dans la partie inférieure droite de l'éditeur, cliquez sur le bouton [+] pour ajouter une ligne à la table payload et nommez cette ligne payload.

  • Dans la colonne Type de cette ligne payload, sélectionnez le type de données Document. La racine XML correspondante est ajoutée automatiquement à la table supérieure de droite, représentant le flux de sortie.

  • Dans la table payload, cliquez-droit sur root pour ouvrir son menu contextuel.

  • Dans le menu contextuel, sélectionnez Create Sub-Element et saisissez response dans la boîte de dialogue.

  • Cliquez-droit sur le nœud response et sélectionnez As loop element dans le menu contextuel.

  • Répétez l'opération pour créer un sous-élément request du nœud root dans la table d'entrée et définissez le nœud request comme élément répétable.

  • Cliquez sur le nœud request dans la table d'entrée et déposez-le dans la colonne Expression de la ligne du nœud response de la table de sortie.

  • Cliquez sur OK pour valider le mapping et fermer l'éditeur.

  • Dans l'espace de modélisation graphique, double-cliquez sur le composant tLogRow_2 afin d'ouvrir sa vue Basic settings dans Component.

  • Cliquez sur le bouton [...] à côté du champ Edit Schema et définissez le schéma comme suit.

  • Reliez le tLogRow_2 au tESBProviderResponse_1.

  • Dans l'espace de modélisation graphique, double-cliquez sur le tESBProviderResponse_1 pour ouvrir sa vue Component et configurer ses Basic settings.

  • Cliquez sur le bouton [...] à côté du champ Edit Schema et définissez le schéma comme suit.

  • Sauvegardez le Job fournisseur.

Le Job consommateur comprend un tFixedFlowInput, un tXMLMap, un tESBConsumer et deux tLogRow.

  • Déposez les composants suivants de la Palette dans l'espace de modélisation graphique : un tFixedFlowInput, un tXMLMap, un tESBConsumer et deux tLogRow.

  • Double-cliquez sur le tFixedFlowInput_1 afin d'afficher sa vue Component et définissez ses Basic settings.

  • Cliquez sur le bouton [...] correspondant au champ Edit schema.

  • Cliquez sur le bouton [+] pour ajouter une ligne de type String et nommez-la payloadString.

  • Cliquez sur OK.

  • Dans le champ Number of rows, paramétrez le nombre de lignes à 1.

  • Dans la zone Mode, sélectionnez Use Single Table et saisissez world entre guillemets, dans le champ Value.

  • Reliez le tFixedFlowInput au tXMLMap.

  • Connectez le tXMLMap au tESBConsumer et nommez la connexion payload.

  • Dans l'espace de modélisation graphique, double-cliquez sur le tXMLMap_1 afin d'ouvrir le Map Editor.

  • Dans la table payload, cliquez-droit sur root pour ouvrir son menu contextuel.

  • Dans le menu contextuel, sélectionnez Create Sub-Element et saisissez request dans la boîte de dialogue.

  • Cliquez-droit sur le nœud request et sélectionnez As loop element dans le menu contextuel.

  • Cliquez sur le nœud payloadstring dans la table d'entrée et déposez-le dans la colonne Expression dans la ligne du nœud request de la table de sortie.

  • Cliquez sur OK pour valider le mapping et fermer l'éditeur Map Editor.

  • Démarrez le Job fournisseur. Vous pouvez voir, dans le log d'exécution :

    ...
    web service [endpoint: http://127.0.0.1:8088/esb/provider] published
    ...
  • Dans la vue Component du tESBConsumer_1, configurez ses Basic settings.

  • Cliquez sur le bouton [...] à côté du champ Service configuration pour ouvrir l'éditeur.

  • Dans le champ WSDL, saisissez : http://127.0.0.1:8088/esb/provider?WSDL

  • Cliquez sur le bouton Refresh afin de récupérer le nom du port et de l'opération.

  • Cliquez sur OK.

  • Dans la vue Basic settings du composant tESBConsumer, configurez le schéma d'entrée (Input Schema) comme suit.

  • Configurez le schéma de réponse (Response Schema) comme suit.

  • Configurez le schéma (Fault Schema) comme suit.

  • Connectez le composant tESBConsumer_1 au tLogRow_1 et au tLogRow_2.

  • Dans l'espace de modélisation graphique, double-cliquez sur le composant tLogRow_1 afin d'ouvrir sa vue Basic settings dans Component.

  • Cliquez sur le bouton [...] à côté du champ Edit Schema et définissez le schéma comme suit.

  • Dans l'espace de modélisation graphique, double-cliquez sur tLogRow_2 afin d'afficher sa vue Component et définir ses Basic settings.

  • Cliquez sur le bouton [...] à côté du champ Edit Schema et définissez le schéma comme suit.

  • Sauvegardez le Job consommateur.

  • Exécutez le Job fournisseur. Dans la console, vous pouvez voir :

    2011-04-21 15:28:26.874:INFO::jetty-7.2.2.v20101205

    2011-04-21 15:28:27.108:INFO::Started

    SelectChannelConnector@127.0.0.1:8088

    web service [endpoint: http://127.0.0.1:8088/esb/provider] published

  • Exécutez le Job consommateur. Vous pouvez voir dans le log d'exécution du Job :

    Starting job CallProvider at 15:29 21/04/2011.
    
    [statistics] connecting to socket on port 3690
    [statistics] connected
    TEST_ProviderJob
    TEST_ProviderJobSoapBingding
    |
    {http://talend.org/esb/service/job}TEST_ProviderJob
    {http://talend.org/esb/service/job}TEST_ProviderJobSoapBinding
    invoke
    [tLogRow_2] payload: <?xml version="1.0" encoding="UTF-8"?>
    <response xmlns="http://talend.org/esb/service/job">Hello, world!</response>
    [statistics] disconnected
    Job ConsumerJob ended at 15:29 21/04/2011. [exit code=0]
  • Dans le log du fournisseur vous pouvez voir le log des traces :

    [tLogRow_1] payload: <?xml version="1.0" encoding="UTF-8"?>
    <request>world</request>
    ### world
    [tLogRow_2] content: world
    [tLogRow_3] payload: <?xml version="1.0" encoding="UTF-8"?>
    <response xmlns="http://talend.org/esb/service/job">Hello, world!</response>
    web service [endpoint: http://127.0.0.1:8088/esb/provider] unpublished
    [statistics] disconnected
    Job ProviderJob ended at 15:29 21/04/2011. [exit code=0]