Scénario : Retourner une réponse "Hello world" - 6.1

Composants Talend Open Studio Guide de référence

EnrichVersion
6.1
EnrichProdName
Talend Open Studio for Big Data
Talend Open Studio for Data Integration
Talend Open Studio for Data Quality
Talend Open Studio for ESB
Talend Open Studio for MDM
task
Création et développement
Gouvernance de données
Qualité et préparation de données
EnrichPlatform
Studio Talend

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. Ils requièrent la création et l'association des services correspondants. Pour plus d'informations concernant les services, consultez le Guide utilisateur du Studio Talend.

Dans ce scénario, un Job fournisseur et un Job consommateur sont nécessaires. Par ailleurs, le service correspondant doit déjà exister sous le nœud Services, avec l'URI http://127.0.0.1.8088/esb/provider/?WSDL, le port TEST_ProviderJobSoapBinding et l'opération invoke(anyType):anyType

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 XMLMap et deux tLogRow.

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

  • Dans la liste Property Type, sélectionnez Repository et cliquez sur le bouton [...] afin de sélectionner le service, la granularité du port et l'opération.

  • Cliquez sur OK.

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

  • Connectez le tESBProviderRequest au tLogRow_1.

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

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

  • Reliez le tLogRow_1 au tXMLMap.

  • Reliez le tXMLMap au tLogRow_2 et nommez la connexion payload.

  • Dans l'espace de modélisation graphique, double-cliquez sur le tXMLMap 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. Nommez cette ligne payload.

  • Dans la colonne Type de la 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 le même 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 de boucle.

  • Cliquez sur le nœud request dans la table d'entrée et déposez-le dans la colonne Expression dans 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 tLogRow_2 afin d'afficher sa vue Basic settings.

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

  • Reliez le tLogRow_2 au tESBProviderResponse.

  • Dans l'espace de modélisation graphique, double-cliquez sur le tESBProviderResponse 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 composant tFixedFlowInput afin d'afficher sa vue Basic settings.

  • Cliquez sur le bouton [...] à côté du champ Edit schema afin d'éditer le schéma.

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

  • Cliquez sur OK.

  • Dans le champ Number of rows, définissez 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 pour ouvrir le Map Editor.

  • Dans la table de sortie, 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 de la table d'entrée et déposez-le dans la colonne Expression de la ligne du nœud request dans la table de sortie.

  • Cliquez sur OK pour valider le mapping et fermer le 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, configurez les propriétés du composant.

  • 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 tESBConsumer aux deux composants tLogRow.

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

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

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

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

  • Sauvegardez le Job consommateur.

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

    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 14:15 21/04/2011.
    
    [statistics] connecting to socket on port 3942
    [statistics] connected
    TEST_ESBProvider2
    TEST_ESBProvider2SoapBingding
    |
    [tLogRow_2] payloadString: <request>world</request>
    {http://talend.org/esb/service/job}TEST_ESBProvider2
    {http://talend.org/esb/service/job}TEST_ESBProvider2SoapBinding
    invoke
    [tLogRow_1] payload: null
    [statistics] disconnected
    Job CallProvider2 ended at 14:16 21/04/2011. [exit code=0]

  • Dans le log fournisseur, vous pouvez voir les traces :

    web service [endpoint: http://127.0.0.1:8088/esb/provider]
    published
    [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]