Créer la Route - 6.1

Talend Real-time Big Data Platform Guide de prise en main

EnrichVersion
6.1
EnrichProdName
Talend Real-Time Big Data Platform
task
Création et développement
Qualité et préparation de données
EnrichPlatform
Studio Talend
  1. Passez de la perspective Integration à la perspective Mediation en cliquant sur le bouton Mediation dans le coin supérieur droit.

  2. Créez une nouvelle Route en cliquant-droit sur Routes puis en sélectionnant Create Route. Nommez-la SayHelloRoute et saisissez Demo dans le champ Purpose, puis cliquez sur Finish.

    L'onglet Route SayHelloRoute 0.1 s'ouvre.

  3. Vous pouvez voir que la Palette est passée de celle de la perspective Integration à celle de la perspective Mediation. Vous allez créer une Route, en glissant-déposant des composants de la Palette dans l'espace de modélisation de la Route.

    Le message de requête provient du consommateur, glissez-déposez le composant Connectivity > Services > cCXF pour intercepter les messages provenant des endpoints du serveur.

    Ensuite, comme vous allez créer une Route basée contenu, glissez-déposez le composant Routing > cMessageRouter, qui route à nouveau les messages selon un ensemble de conditions.

    Ajoutez un autre Connectivity > Services > cCXF pour le service cible et ajoutez un Custom > cProcessor pour retourner les messages d'erreur.

    Note

    Il n'est pas supporté d'avoir plusieurs composants cCXF du même nom dans une Route.

    Il est recommandé de nommer chaque composant de manière unique afin de mieux identifier son rôle dans la Route.

    Des noms en double peuvent poser des problèmes pour la génération du code de certains composants.

  4. Pour ce faire, ajoutez certains paramètres. Cliquez sur le cCXF_1 et, dans son onglet Component :

    • en tant qu'utilisateur utilisant pour la première fois Talend Open Studio for ESB, il vous sera demandé d'installer des bibliothèques externes dans le Studio pour pouvoir utiliser certains composants, comme le cCXF. Suivez les instructions et installez ces bibliothèques.

    • Dans le champ Address, collez l'adresse du Service précédent "http://localhost:8090/services/SayHelloService" et modifiez le port à 8092, puisque le nouveau Service écoutera ce port. L'adresse du nouveau service est "http://localhost:8092/services/SayHelloService".

    • Dans le champ Wsdl File, spécifiez l'URL du WSDL du Service original. Utilisez l'adresse http:// address pour obtenir les informations relatives au Service en temps réel. L'adresse est "http://localhost:8090/services/SayHelloService?WSDL".

    • Dans la liste Dataformat, sélectionnez PAYLOAD.

    Note

    Vous pouvez sauvegarder les informations à n'importe quel moment en sélectionnant File > Save ou en cliquant sur l'icône Save dans le coin supérieur gauche.

  5. Répétez l'étape précédente pour le cCXF_2: modifiez simplement le numéro du port dans le champ Address à 8090.

  6. Configurez le composant cProcessor afin qu'il retourne des messages d'erreur. Double-cliquez dans l'espace de modélisation graphique pour afficher sa vue Basic settings.

    Dans le champ Code, saisisissez throw new Exception("user name error") pour retourner une exception.

  7. Connectez les composants. Reliez le cCXF_1 au cMessageRouter_1 en cliquant-droit sur le cCXF_1, en sélectionnant Row > Route et en déposant le lien sur le cMessageRouter_1.

  8. Créez un lien Trigger > When pour le service : cliquez-droit sur le cMessageRouter_1, sélectionnez Trigger > When et déposez le lien sur le cCXF_2.

  9. De la même manière, ajoutez un lien Trigger > Otherwise entre le cMessageRouter_1 et le cProcessor_1 : cliquez-droit sue le cMessageRouter_1, sélectionnez Trigger > Otherwise et déposez le lien sur le cProcessor_1.

    Vous avez créé une requête sur le port 8092 (cCXF_1) et l'avez envoyée soit au port 8090 (cCXF_2) soit à l'endpoint du cProcessor, selon le contenu du message.

    Votre Route doit ressembler à ce qui suit :

  10. Configurez la condition When : cliquez-droit sur le lien when1, ce qui ouvre une petite boîte de dialogue.

    Dans la liste Type, sélectionnez simple. Dans le champ Condition, saisissez "${bodyAs(String)} contains 'Alice'".

    Ainsi, tout message contenant "Alice" dans le corps du message sera routé au service écoutant sur le port 8090.