Accéder au contenu principal Passer au contenu complémentaire

Création d'une Route à l'aide d'un service de données

Cette section fournit un scénario illustrant la création d'une Route, à partir d'un service de données créé dans la section précédente.

Dans ce scénario, vous configurez une Route utilisant un service Web créé précédemment, envoyez une requête à ce service Web et récupérez la réponse du service Web pour une utilisation ultérieure.

Créer la Route

Pour créer la Route, vous avez besoin des composants suivants :

  • un cJMSConnectionFactory afin de spécifier la Connection Factory pour la gestion des messages,
  • deux composants cJMS, un pour lire un message JMS d'une file et envoyer une requête au service Web, et l'autre pour récupérer la réponse du service Web et l'enregistrer dans une autre file,
  • un cSOAP pour la connexion au service Web.

Before you begin

Pour envoyer des données pour interroger le service Web, utilisez Apache ActiveMQ comme broker de messages. Vous devez lancer le serveur ActiveMQ avant d'exécuter la Route. Pour plus d'informations concernant l'installation et le démarrage du serveur ActiveMQ, consultez Installation d'Apache ActiveMQ et le site Web d'Apache (en anglais).

Procedure

  1. Dans la vue Repository, cliquez-droit sur le nœud Route et, dans le menu contextuel, sélectionnez Create Route.
  2. Dans l'assistant, saisissez les informations correspondant aux champs à renseigner. Dans ce scénario, saisissez airportRoute dans le champ Name (Nom) et cliquez sur Finish (Terminer).
    La Route s'ouvre dans l'espace de modélisation graphique.

Déposer et relier les composants pour la Route

Procedure

  1. Placez les composants suivants de la Palette dans l'espace de modélisation graphique :
    • un cMQConnectionFactory,
    • un cSOAP,
    • un cProcessor,
    • et deux cJMS.
  2. Renommez les composants afin de mieux identifier leur rôle et reliez-les à l'aide de connexions Row>Route, comme dans la capture d'écran ci-dessous.
    Capture d'écran du Job dans l'espace de modélisation graphique.

Configurer les composants

Procedure

  1. Double-cliquez sur le cMQConnectionFactory pour afficher sa vue Basic settings dans l'onglet Component.
    Vue Basic settings (Paramètres simples).
  2. Dans la liste MQ Server, sélectionnez ActiveMQ. Dans le champ Broker URI, saisissez l'URI du serveur local d'ActiveMQ, "tcp://localhost:61616" dans ce scénario.
  3. Double-cliquez sur le cJMS nommé Input pour afficher sa vue Basic settings.
    Vue Basic settings (Paramètres simples).
  4. Dans la liste Type, sélectionnez queue pour envoyer les messages dans une file JMS. Dans le champ Destination, saisissez un nom pour la file JMS, "IN" dans cet exemple. Dans la liste ConnectionFactory, sélectionnez la ConnectionFactory ActiveMQ que vous venez de configurer.
  5. Répétez cette opération pour configurer le composant cJMS nommé Output avec la même ConnectionFactory puis nommez la file JMS de destination JMS OUT.
    Vue Basic settings (Paramètres simples).
  6. Double-cliquez sur le cSOAP pour afficher sa vue Basic settings.
    Vue Basic settings (Paramètres simples).
  7. Dans le champ Address, saisissez l'URL de l'endpoint du service Web créé, http://localhost:8200/airport.service dans cet exemple. Dans la liste Type, sélectionnez wsdlURL. Dans le champ WSDL File, saisissez le chemin d'accès au fichier WSDL, http://localhost:8200/airport.service?wsdl dans cet exemple. Dans la liste Dataformat, sélectionnez PAYLOAD.
  8. Double-cliquez sur le cProcessor pour afficher sa vue Basic settings.
    Vue Basic settings (Paramètres simples).
  9. Dans la zone Code, personnalisez le code comme ci-dessous afin d'afficher le corps du message dans la console de la vue Run.
    System.out.println("The output message is: "+
    exchange.getIn().getBody(String.class));

Exécuter la Route pour implémenter le service de données.

Procedure

  1. Cliquez sur la vue Run pour l'afficher puis cliquez sur le bouton Run afin de démarrer l'exécution de la Route. Vous pouvez également appuyer sur F6 pour l'exécuter.

    La Route est démarrée.

    Capture d'écran des résultats dans la console après l'exécution réussie du Job.
  2. Allez dans la console Web d'ActiveMQ. La file entrante est créée.
    Capture d'écran de la file entrante dans l'interface ActiveMQ. La file possède un consommateur.
  3. Saisissez le corps du message suivant dans la file entrante et envoyez le message.
    <air:getAirportInformationByISOCountryCode>
       <air:CountryAbbrviation>CN</air:CountryAbbrviation>
    </air:getAirportInformationByISOCountryCode>
  4. Dans le Route designer, vous pouvez voir que le payload du message est envoyé au service Web. Le service Web est appelé et la réponse est envoyée dans une autre file, OUT comme configuré.

    Le corps du message de cette file est affiché dans la console.

    Message dans la console.

    Vous pouvez également visualiser la file OUT dans la console Web d'ActiveMQ. Elle ne contient qu'un message, comme affiché ci-dessous.

    Capture d'écran des files d'attente dans l'interface ActiveMQ. La file sortante a un message en attente et un message dans la file d'attente. La file entrante a un consommateur, un message dans la file d'attente et un message retiré de la file d'attente.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.