cCXF

Composants Mediation Talend ESB Guide de référence

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

Propriétés du cCXF

Famille du composant

Connectivity/Services

Fonction

Le composant cCXF fournit l'intégration avec Apache CXF pour la connexion aux services JAX-WS.

Objectif

Le cCXF est utilisé pour produire ou consommer des services Web.

Basic settings

Service/Address

URL de l'endpoint du service où le service Web est fourni.

Si le cCXF est utilisé pour consommer un service Web et que le lookup de l'endpoint utilise le Service Locator (si la case Use Service Locator est cochée), l'URL doit être "locator://anyAddress/".

 

Service/Type

Sélectionnez le type que vous souhaitez utiliser pour fournir le service Web entre wsdlURL et serviceClass.

wsdlURL : Sélectionnez ce type pour fournir le service Web à partir d'un fichier WSDL. Sélectionnez Repository ou File pour fournir le service Web à partir d'une ressource de Route ou du système de fichiers.

serviceClass : Sélectionnez ce type pour fournir le service Web à partir d'une classe Java SEI (Service Endpoint Interface).

 

Service/WSDL File

Ce champ s'affiche lorsque le type de service wsdlURL est sélectionné. Si le fichier WSDL se trouve dans le système de fichiers, parcourez votre système ou saisissez le chemin d'accès à votre fichier WSDL. S'il provient d'une ressource de Route, cliquez sur le bouton [...] et sélectionnez la ressource dans l'arborescence. La liste Version apparaît et vous permet de sélectionner une version parmi toutes celles de la ressource de Route.

 

Service/Service configuration

Cette option apparaît lorsque l'option wsdlURL est sélectionnée dans la liste Type. Cela vous permet de configurer les informations de l'endpoint du service. Cliquez sur [...] pour ouvrir l'assistant de configuration du service.

Le champ WSDL, dans l'assistant, est automatiquement renseigné grâce au fichier WSDL défini dans le champ WSDL File. Vous pouvez également configurer le fichier WSDL directement dans l'assistant de configuration du service, d'une des manières suivantes :

  • Cliquez sur Browse... pour parcourir votre système ou saisir le chemin d'accès au fichier WSDL dans le système de fichiers.

  • Cliquez sur Services pour sélectionner un service sous le nœud Services, dans la perspective Integration du Studio,

  • Cliquez sur Resources pour sélectionner un service sous le nœud Resources.

Après avoir configuré le fichier WSDL, cliquez sur pour afficher les port(s) et les opérations disponibles dans les champs Port Name et Operation, respectivement. Sélectionnez celui que vous souhaitez utiliser et cliquez sur Finish. La case Operation est disponible uniquement lorsque le composant cCXF est utilisé pour consommer un Service Web.

 

Service/Service Class

Ce champ s'affiche lorsque le type de service serviceClass est sélectionné. Saisissez le nom de la classe du service à utiliser pour fournir le service Web.

 

Service/Dataformat

Style d'échange des données. POJO, PAYLOAD, RAW ou CXF_MESSAGE.

POJOs : (Plain Old Java Objects) paramètres Java de la méthode invoquée sur le serveur cible.

PAYLOAD : charge utile du message (payload), contenu de soap:body.

RAW : message brut reçu par la couche de transport sans support de Service Activity Monitoring.

CXF_MESSAGE : message brut reçu par la couche de transport, avec support de Service Activity Monitoring.

 Service Name Nom du service que ce service implémente. Il mappe vers wsdl:service@name au format ns:SERVICE_NAMEns est un préfixe valide de l'espace de nommage du service. Le champ est automatiquement renseigné à la fin de l'étape Service Configuration.
 Port Name Nom de l'endpoint que ce service implémente. Il mappe vers wsdl:port@name, au format ns:PORT_NAMEns est un préfixe valide de l'espace de nommage du service. Le champ est automatiquement renseigné à la fin de l'étape Service Configuration.
 

Operation Name

Nom de l'opération que ce service implémente. Il mappe vers wsdl:operation@name, au format ns:OPERATION_NAMEns un préfixe valide de l'espace de nommage. Cette option est disponible lorsque le composant cCXF utilisé consomme un service Web. Ce champ est automatiquement renseigné à l'a fin de l'étape Service configuration.

 

Use Service Registry

Cette option est disponible uniquement si vous avez souscrit à l'une des solutions Enterprise ESB de Talend.

Cochez cette case pour activer le registre de service. Cela permet une recherche d'endpoint dynamique et permet aux services d'être redirigés selon les informations récupérées du registre. Cela fonctionne uniquement dans le Runtime.

Lorsque le composant cCXF est utilisé pour fournir un service Web, le service déployé dans le Runtime fonctionne avec le registre de service.

Lorsque le cCXF est utilisé pour consommer un service Web :

Dans le champ Correlation Value, spécifiez un ID de corrélation ou laissez ce champ vide. Pour plus d'informations, lisez la description de l'option Use Business Correlation.

Dans les champs Username et Password, saisissez les informations d'authentification. Pour saisir le mot de passe, cliquez sur le bouton [...] à côté du champ Password, puis, dans la boîte de dialogue qui s'ouvre, saisissez le mot de passe entre guillemets doubles, puis cliquez sur OK afin de sauvegarder les paramètres.

Si un jeton SAML est enregistré dans le registre du service, vous devez spécifier le rôle du client dans le champ Role. Vous pouvez également cocher la case Propagate Credentials pour effectuer un appel si un utilisateur est déjà authentifié, en propageant les informations d'authentification. Vous pouvez saisir l'identifiant et le mot de passe d'authentification via STS afin de propager les informations d'authentification à l'aide de l'identifiant et du mot de passe, ou vous pouvez fournir l'alias, l'identifiant et le mot de passe à l'aide du certificat. Pour plus d'informations, consultez la description de l'option Use Authentication.

Pour plus d'informations concernant la configuration et l'utilisation du Service Registry, consultez le Guide utilisateur de Talend Administration Center et le Guide Talend ESB Infrastructure Services Configuration Guide (en anglais).

 Use Service Locator

Fournit aux consommateurs de services un mécanisme pour découvrir les endpoints de service lors de l'exécution sans spécifier l'emplacement physique de l'endpoint. De plus, cela permet aux fournisseurs de services d'enregistrer et de supprimer du registre leurs endpoints de services dans le Service Locator.

Note

Pour les consommateurs de services, l'URL doit être configurée comme "locator://anyAddress/" dans le champ CXF Configuration / Address.

La table Custom Properties apparaît lorsque la case Use Service Locator est cochée. Cliquez sur le bouton pour ajouter autant de propriétés que nécessaire dans la table. Saisissez le nom et la valeur de chaque propriété, respectivement dans les champs Property Name et Property Value, afin d'identifier le service. Pour plus d'informations concernant l'installation et la configuration du Service Locator, consultez le Guide Talend ESB Infrastructure Services Configuration Guide (en anglais).

 Use Service Activity Monitor

Capture les événements et stocke les informations pour faciliter les analyses en profondeur de l'activité des services ainsi que suivre et tracer des messages via une transaction métier. Cette option peut être utilisée pour analyser les temps de réponse des services, identifier les modèles de transport, identifier les messages en entrée et en sortie des services et analyser les causes éventuelles de l'échec des appels du service, par exemple.

Cette fonctionnalité n'est pas supportée lorsque le mode de traitement utilisé est MESSAGE. Quand l'option MESSAGE est sélectionnée dans le champ Dataformat, la case Use Service Activity Monitor est décochée.

Cette option est également désactivée lorsque la case Use Service Registry est cochée, si vous avez souscrit à l'une des solutions Enterprise ESB de Talend.

 Use Authentication

Cochez cette case pour activer l'option d'authentification. Sélectionnez Username Token, SAML Token (ESB runtime only), HTTP Basic ou HTTP Digest.

Lorsque le composant cCXF est utilisé pour produire un service Web service, l'authentification via Username Token, SAML token ou HTTP Basic fonctionne uniquement dans le conteneur d'exécution. HTTP Digest n'est pas supporté. Lorsque l'option SAML Token (ESB runtime only) est sélectionnée, le cCXF obtient le jeton SAML de l'en-tête de requête pour usage ultérieur dans le routage de message.

Lorsque le composant cCXF est utilisé pour consommer un service Web, l'authentification via Username Token, HTTP Basic ou HTTP Digest fonctionne dans le studio et dans le conteneur d'exécution. L'authentification via SAML token fonctionne uniquement dans le conteneur d'exécution. Saisissez un nom d'utilisateur et un mot de passe dans les champs correspondants. Pour saisir le mot de passe, cliquez sur le bouton [...] à côté du champ Password, puis, dans la boîte de dialogue qui s'ouvre, saisissez le mot de passe entre guillemets doubles, puis cliquez sur OK afin de sauvegarder les paramètres.

Lorsque l'option SAML Token (ESB runtime only) est sélectionnée, vous pouvez fournir les informations d'authentification pour envoyer la requête ou effectuer l'appel si un utilisateur est authentifié, en propageant les informations d'authentification. Sélectionnez :

- : Saisissez l'identifiant et le mot de passe dans les champs correspondants afin d'accéder au service.

Propagate using U/P : Saisissez l'identifiant et le mot de passe utilisés pour vous authentifier via STS.

Propagate using Certificate : Saisissez l'alias et le mot de passe utilisés pour vous authentifier via STS.

Cette case disparaît lorsque la case Use Service Registry est cochée.

 

Use Authorization

Cette option est disponible uniquement si vous avez souscrit à l'une des solutions Enterprise ESB de Talend. Elle apparaît lorsque l'option SAML Token (ESB runtime only) est sélectionnée dans la liste Use Authentication.

Lorsque le composant cCXF est utilisé pour fournir un service Web, cochez cette case pour activer l'autorisation.

Lorsque le composant cCXF est utilisé pour consommer un service Web, cochez cette case pour invoquer les appels autorisés et spécifier le rôle du client dans le champ Role.

Pour plus d'informations concernant la gestion des rôles et et des droits des utilisateurs, consultez le Guide utilisateur de Talend Administration Center User Guide et le Guide Talend ESB Infrastructure Services Configuration Guide (en anglais).

 

Use Business Correlation

Cochez cette case pour activer l'option de corrélation afin que les services en chaîne soient groupés sous le même ID de corrélation.

Lorsque le cCXF est utilisé pour fournir un service Web :

Le cCXF extrait l'ID de corrélation du message de requête.

Si le message de requête ne contient pas d'ID de corrélation, le fournisseur crée automatiquement un ID de corrélation dans l'en-tête SOAP.

Lorsque le cCXF est utilisé pour consommer un service Web :

Vous pouvez spécifier un ID de corrélation dans le champ Correlation Value à l'aide d'une chaîne de caractères ou d'une expression simple. Si vous laissez ce champ vide, cette valeur est générée automatiquement lors de l'exécution. L'ID de corrélation est créé dans l'en-tête SOAP personnalisé du message de requête et passée au service appelé.

Cette case disparaît lorsque la case Use Service Registry est cochée ou si l'option RAW est sélectionnée dans la liste Dataformat.

Advanced settings Arguments Configurez les arguments facultatifs dans la table correspondante. Cliquez sur le bouton [+] autant de fois que nécessaire pour ajouter des arguments à la table. Cliquez ensuite sur le champ Value correspondant pour saisir une valeur. Consultez le site http://camel.apache.org/cxf.html (en anglais) pour voir les options d'URI disponibles.

Utilisation

Le composant cCXF peut être un composant de début, un composant intermédiaire ou un composant de fin dans une Route.

Limitation

L'utilisation de plusieurs composants cCXF ayant le même nom dans une route n'est pas supportée.

Du fait d'une incompatibilité de licence, un ou plusieurs JARs requis pour utiliser ce composant ne sont pas fournis. Vous pouvez installer ces Jar manquants en cliquant sur le bouton Install dans la vue Basic settings de l'onglet Component. Pour plus d'informations, consultez la section concernant la configuration du studio dans le Guide d'installation Talend.

Lorsque le composant cCXF est utilisé pour consommer un service Web, si vous utilisez le format de données CXF_MESSAGE, le type du corps de la requête doit être javax.xml.transform.Source.class, ou bien le corps de cette requête sera vide.

Pour des exemples d'utilisation simple avec un proxy, par exemple, d'un cCXF à un cProcessor à un cCXF, vous devez utiliser le format de données RAW, sinon, le corps de la requête sera réinitialisé. S'il est affiché par le cProcessor, le corps de la requête en sortie sera vide.

Lorsque le cCXF est utilisé pour consommer un service Web et que le format de données est POJO, PAYLOAD, ou CXF_MESSAGE, si une réponse Fault est retournée, le routage du message s'arrête. Dans ce cas, il est recommandé d'utiliser le composant cErrorHandler pour capturer le message Fault. Pour plus d'informations concernant le cErrorHandler, consultez cErrorHandler.

Scénario 1 : Fournir un service Web via le cCXF depuis un fichier WSDL

Dans ce scénario, un service Web est produit par un composant cCXF à l'aide d'un fichier WSDL.

Déposer et relier les composants

Ce scénario utilise un composant cCXF et un cProcessor.

  1. Dans la Palette, développez le dossier Connectivity/Services, sélectionnez le composant cCXF et déposez-le dans l'espace de modélisation graphique.

  2. Développez le dossier Custom, sélectionnez le composant cProcessor et déposez-le dans l'espace de modélisation graphique.

  3. Cliquez-droit sur le composant cCXF, sélectionnez Row > Route dans le menu contextuel et cliquez sur le composant cProcessor.

  4. Nommez le composant cCXF afin de mieux identifier sa fonctionnalité.

Configurer les composants

Dans ce scénario, le composant cProcessor est utilisé uniquement pour activer le cCXF, pour qu'il fonctionne comme un producteur de service. Il ne nécessite donc aucune configuration.

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

  2. Dans le champ Address, saisissez l'URL de l'endpoint du service pour le service Web à fournir, http://192.168.0.212:8000/service.endpoint dans cet exemple.

  3. Dans la liste Type, sélectionnez wsdlURL pour activer la production du service Web à partir d'un fichier WSDL.

  4. Dans le champ Wsdl File, parcourez votre système ou saisissez le chemin d'accès au fichier WSDL à utiliser.

  5. Cliquez sur le bouton [...] à côté du champ Service Configuration pour ouvrir l'assistant de configuration du service. Le champ WSDL a été renseigné avec le fichier WSDL sélectionné. Cliquez sur pour afficher le port disponible dans le champ Port Name. Sélectionnez le port airportSoap et cliquez sur Finish pour fermer l'assistant. Les champs Service Name et Port Name de l'onglet Basic settings sont renseignés automatiquement.

  6. Dans la liste Dataformat, sélectionnez le mode PAYLOAD.

  7. Appuyez sur Ctrl+S pour sauvegarder votre route.

Visualiser du code et exécuter la Route

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

    Comme affiché dans le code, le composant cCXF nommé WebService_producer produit le service Web à partir d'un fichier d'entrée airport_soap_route.wsdl à l'aide de l'URL de l'endpoint http://192.168.0.212:8000/service.endpoint.

  2. Cliquez sur la vue Run pour l'afficher et cliquez sur le bouton Run pour lancer l'exécution de votre Route. Vous pouvez également appuyer sur F6 pour l'exécuter.

    Résultat : Le service est démarré avec succès. Vous pouvez y accéder depuis un navigateur Web en utilisant l'URL de l'endpoint du service suivie de ?wsdl.

Scénario 2 : Fournir un service Web via un cCXF à partir d'une classe Java

Dans ce scénario, un service Web est fourni par un fichier de classe Java à l'aide d'un composant cCXF.

Créer une classe Java

  1. Dans la vue Repository, développez le nœud Code et cliquez-droit sur le nœud Beans. Dans le menu contextuel, sélectionnez Create Bean.

  2. L'assistant [New Bean] s'ouvre. Dans le champ Name, saisissez un nom pour le bean, par exemple, CXFdemobean. Cliquez sur Finish pour fermer l'assistant.

  3. Changez le type de classe en interface, modifiez le type de retour en string et supprimer le corps du message.

    package beans;
    
    public interface CXFdemobean {
        public String helloExample(String message) ;
    }

  4. Appuyez sur Ctrl+S pour sauvegarder votre bean.

Déposer et relier les composants

Ce scénario utilise un composant cCXF et un cProcessor.

  1. Dans la Palette, développez le dossier Connectivity/Services, sélectionnez le composant cCXF et déposez-le dans l'espace de modélisation graphique.

  2. Développez le dossier Custom, sélectionnez le composant cProcessor et déposez-le dans l'espace de modélisation graphique.

  3. Cliquez-droit sur le cCXF, sélectionnez Row > Route dans le menu contextuel et cliquez sur le cProcessor.

  4. Nommez les composants comme vous le souhaitez pour mieux identifier leur fonction.

Configurer les composants

Dans ce scénario, le composant cProcessor est utilisé uniquement pour activer le cCXF afin qu'il fonctionne comme un producteur de service. Il ne nécessite donc aucune configuration.

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

  2. Dans le champ Address, saisissez l'URL de l'endpoint du service pour le service Web à fournir, http://192.168.0.212:8001/service.endpoint dans cet exemple.

  3. Dans la liste Type, sélectionnez serviceClass pour démarrer le service Web à partir d'une classe Java.

  4. Dans le champ Service Class, spécifiez la classe prédéfinie du bean, CXFdemobean dans cet exemple.

  5. Dans la liste Dataformat, sélectionnez POJO comme format des données du service.

  6. Appuyez sur Ctrl+S pour sauvegarder votre Route.

Visualiser du code et exécuter la Route

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

    Comme affiché dans le code, le composant cCXF nommé WebService_producer produit le service Web à partir d'un bean prédéfini beans.CXFdemobean à l'aide de l'URL de l'endpoint http://192.168.0.212:8001/service.endpoint.

  2. Cliquez sur la vue Run pour l'afficher et cliquez sur le bouton Run pour lancer l'exécution de votre Route. Vous pouvez également appuyer sur F6 pour l'exécuter.

    Résultat : Le service est démarré avec succès. Vous pouvez y accéder via un navigateur Web à l'aide de l'URL de l'endpoint du service, suivie de ?wsdl.

Scénario 3 : Fournir un service Web à partir d'une ressource de Route

Dans ce scénario, un service Web est fourni à partir d'une ressource de Route, à l'aide d'un composant cCXF.

Créer une ressource de Route

  1. Dans la vue Repository, cliquez-droit sur le nœud Resources et sélectionnez Create Resource dans le menu contextuel.

  2. L'assistant [New Route Resource] s'ouvre. Dans le champ Name, saisissez un nom pour la ressource, par exemple, DemoServiceWsdl. Cliquez sur Finish pour fermer l'assistant.

  3. Parcourez votre système de fichiers local jusqu'à un fichier WSDL existant et cliquez sur Finish.

  4. Appuyez sur les touches Ctrl+S pour sauvegarder votre ressource de Route.

Déposer et relier les composants

Ce scénario nécessite un composant cCXF et un cProcessor.

  1. Dans la Palette, développez le dossier Connectivity/Services, et déposez un composant cCXF dans l'espace de modélisation graphique.

  2. Développez le dossier Custom et déposez un cProcessor dans l'espace de modélisation graphique.

  3. Cliquez-droit sur le composant cCXF, sélectionnez Row > Route dans le menu contextuel et cliquez sur le cProcessor.

  4. Renommez le composant cCXF afin de mieux identifier son rôle dans la Route.

Configurer les composants

Dans ce scénario, le composant cProcessor est utilisé uniquement afin de faire fonctionner le composant cCXF comme un producteur de service. Aucune configuration n'est donc nécessaire.

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

  2. Dans le champ Address, saisissez l'URL de l'endpoint du service pour le service Web à fournir, http://localhost:8000/service.endpoint dans cet exemple.

  3. Dans la liste Type, sélectionnez wsdlURl et utilisez le type Repository pour démarrer le service Web à partir de la ressource de Route créée.

  4. Dans le champ WSDL File, cliquez sur le bouton [...] et sélectionnez DemoServiceWsdl dans l'arborescence des ressources. Cliquez sur OK pour fermer l'assistant.

  5. Cliquez sur le bouton [...] à côté du champ Service Configuration pour ouvrir l'assistant de configuration du service. Le champ WSDL a été renseigné avec le fichier WSDL sélectionné. Cliquez sur pour afficher le port disponible dans le champ Port Name. Sélectionnez le port DemoServicePort et cliquez sur Finish pour fermer l'assistant. Les champs Service Name et Port Name de l'onglet Basic settings sont renseignés automatiquement.

  6. Appuyez sur les touches 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 pour visualiser le code généré.

    Comme affiché dans le code, le composant cCXF nommé WebService_producer produit le service Web à partir d'une ressource de Route prédéfinie DemoServiceWsdl, à l'aide de l'URL de l'endpoint http://localhost:8000/service.endpoint.

  2. Cliquez sur la vue Run pour l'afficher puis cliquez sur le bouton Run pour lancer l'exécution de votre Route. Vous pouvez également appuyer sur la touche F6 pour l'exécuter.

    Résultat : Le service est bien démarré. Vous pouvez y accéder depuis votre navigateur Web en utilisant l'URL de l'endpoint du service, suivie de ?wsdl.