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

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.
Renommez les composants afin d'identifier leur rôle dans la Route et reliez-les à l'aide de liens Row > Route.
Configurer la première sous-route
Double-cliquez sur le composant URLlist pour afficher sa vue Basic settings.
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.
Double-cliquez sur le cSplitter pour afficher sa vue Basic settings.
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, enbody(String.class).tokenize("\r")
.Double-cliquez sur le cJavaDSLProcessor pour afficher sa vue Basic settings.
Dans le champ Code, saisissez le code
.log("splitterOutput: ${body}")
pour diviser le corps du message.Double-cliquez sur le cContentEnricher pour afficher sa vue Basic settings.
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é.Double-cliquez sur le setFileName pour afficher sa vue Basic settings.
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.Double-cliquez sur le retrievedFiles pour afficher sa vue Basic settings.
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
Double-cliquez sur le composant fetchURL pour afficher sa vue Basic settings.
Dans le champ URI, saisissez "direct:fetchURL", définie dans le composant cContentEnricher.
Double-cliquez sur le composant setURI pour afficher sa vue Basic settings.
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.Double-cliquez sur le composant setPATH pour afficher sa vue Basic settings.
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.Double-cliquez sur le http4Endpoint pour afficher sa vue Basic settings.
Dans le champ URI, saisissez "http4:localhost:8080" pour consommer des ressources HTTP du serveur Tomcat local.
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.
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
versretrievedFiles
via les méthodes.split
,.log
,.enrich
et.setHeader
. L'autre route de messages est construite defetchURL
vershttp4Endpoint
via deux.setHeader
.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.