Scénario : Recevoir des messages d'une liste d'URL

Composants Mediation Talend ESB Guide de référence

EnrichVersion
6.1
EnrichProdName
Talend Data Fabric
Talend Real-Time Big Data Platform
Talend MDM Platform
Talend Data Services Platform
Talend ESB
Talend Open Studio for ESB
task
Création et développement
EnrichPlatform
Studio Talend

Dans ce scénario, vous allez utiliser le composant Camel HTTP4 et le composant cContentEnricher pour récupérer des messages à partir d'une liste d'URL. Pour ce faire, vous devez construire deux sous-routes, une pour lire un fichier avec une liste d'URL et pour envoyer des messages dans le système de fichiers local, l'autre pour récupérer les messages de ces URL.

Dans cet exemple, vous allez prendre une liste d'URL du serveur Tomcat local comme exemple. Vous devez donc démarrer Apache Tomcat avant d'exécuter la Route.

Un fichier .txt URLlist est utilisé pour fournir la liste d'URL, comme ci-dessous.

docs/introduction.html
docs/setup.html

Déposer et relier les composants

  1. De la Palette, glissez-déposez un cSplitter, un cJavaDSLProcessor, un cContentEnricher, deux cFile, deux cMessagingEndpoint et trois cSetHeader dans l'espace de modélisation graphique.

  2. Renommez les composants afin d'identifier leur rôle dans la Route et reliez-les à l'aide de liens Row > Route.

Configurer les composants

Configurer la première sous-route

  1. Double-cliquez sur le composant URLlist pour afficher sa vue Basic settings.

  2. Dans le champ Path, parcourez votre système jusqu'au fichier dans lequel la liste d'URL est sauvegardée.

    Dans le champ FileName, saisissez le nom du fichier URLlist.txt.

  3. Double-cliquez sur le cSplitter pour afficher sa vue Basic settings.

  4. Sélectionnez None dans la liste Language. Dans le champ Expression, saisissez le code body(String.class).tokenize("\r\n") pour diviser le message de chaque ligne en sous-messages.

    Note

    Ce code est valable uniquement sous Windows. Sous Unix, modifiez-le en body(String.class).tokenize("\n"), pour Mac, en body(String.class).tokenize("\r").

  5. Double-cliquez sur le cJavaDSLProcessor pour afficher sa vue Basic settings.

  6. Dans le champ Code, saisissez le code .log("splitterOutput: ${body}") pour diviser le corps du message.

  7. Double-cliquez sur le cContentEnricher pour afficher sa vue Basic settings.

  8. Sélectionnez l'option using a producer pour utiliser un producteur afin de fournit des données supplémentaires et envoyer le message à une URI définie.

    Dans le champ Resource URI, saisissez "direct:fetchURL", où le message sera livré.

  9. Double-cliquez sur le setFileName pour afficher sa vue Basic settings.

  10. Cliquez sur [+] pour ajouter une ligne au tableau Headers.

    Dans le champ Name, saisissez org.apache.camel.Exchange.FILE_NAME pour définir le nom du fichier pour chaque message entrant.

    Sélectionnez Simple dans la liste Language.

    Dans le champ Value, saisissez "${header.CamelHttpPath}" pour obtenir le chemin de l'URI du message entrant.

  11. Double-cliquez sur le retrievedFiles pour afficher sa vue Basic settings.

  12. Dans le champ Path, parcourez votre système jusqu'au fichier de destination dans lequel vos messages seront sauvegardés.

Configurer la seconde sous-route

  1. Double-cliquez sur le composant fetchURL pour afficher sa vue Basic settings.

  2. Dans le champ URI, saisissez "direct:fetchURL", définie dans le composant cContentEnricher.

  3. Double-cliquez sur le composant setURI pour afficher sa vue Basic settings.

  4. Cliquez sur [+] pour ajouter une ligne au tableau Headers.

    Dans le champ Name, saisissez org.apache.camel.Exchange.HTTP_URI pour définir l'URI HTTP de chaque message.

    Sélectionnez Simple dans la liste Language.

    Dans le champ Value, saisissez "http://localhost:8080", du serveur Tomcat local.

  5. Double-cliquez sur le composant setPATH pour afficher sa vue Basic settings.

  6. Cliquez sur [+] pour ajouter une ligne au tableau Headers.

    Dans le champ Name, saisissez org.apache.camel.Exchange.HTTP_PATH pour définir le chemin HTTP de chaque message.

    Sélectionnez Simple dans la liste Language.

    Dans le champ Value, saisissez "${body}", divisé depuis le message original.

  7. Double-cliquez sur le http4Endpoint pour afficher sa vue Basic settings.

  8. Dans le champ URI, saisissez "http4:localhost:8080" pour consommer des ressources HTTP du serveur Tomcat local.

  9. Cliquez sur l'onglet Advanced settings. Cliquez sur le bouton au bas de la table Dependencies pour y ajouter une ligne et sélectionnez http4 dans la liste déroulante. Pour plus d'informations concernant HTTP4, consultez le site Web http://camel.apache.org/http4.html (en anglais).

Appuyez sur Ctrl+S pour sauvegarder votre Route.

Visualiser le code et exécuter la Route

  1. Cliquez sur l'onglet Code au bas de l'espace de modélisation graphique afin de visualiser le code généré.

    Comme affiché ci-dessus, une route est construite de URLlist vers retrievedFiles via les méthodes .split, .log, .enrich et .setHeader. L'autre route de messages est construite de fetchURL vers http4Endpoint via deux .setHeader.

  2. Appuyez sur F6 pour exécuter la Route.

    Résultat : Le message divisé est affiché dans le console de la vue Run.

    Les messages de la liste d'URLs sont sauvegardés dans le répertoire défini du système de fichiers local.