La liaison d'importation EJB permet à un module SCA (Service Component Architecture) d'appeler une implémentation EJB à partir de systèmes externes.
L'importation de services à partir d'une implémentation EJB externe (implémentation EJB extérieure au module) permet aux utilisateurs de relier leur logique métier à l'environnement Process Server WebSphere et de participer à un processus métier. Deux types de scénario d'utilisation pour la liaison d'importation EJB sont pris en charge :
Composant | Objectif |
---|---|
Implémentation EJB | Bean EJB qui implémente l'interface métier |
Nom JNDI | Recherche la référence EJB |
Gestionnaire de données JAX-WS | Effectue la transformation des données nécessaire
au serveur pour convertir des objets Java™
en objets métier (unidirectionnelle) ou des données de réponse en objets métier
(bidirectionnelle). Ces gestionnaires de données mappent les données de l'architecture SCA à Java à l'aide de spécifications JAX-WS et JAXB. Remarque : Pour
personnaliser le mappage du type XSD aux types Java définis par la spécification JAX-WS, modifiez les annotations JAXB selon les besoins de votre entreprise. JAXWSDataHandler
prend en charge xs:any, xs:anyType et xs:anySimpleType. Le support actuel est
limité aux spécifications JAX-WS 1.0 et JAXB 2.0.
|
Sélecteur d'erreurs EJB | Détermine si un appel EJB a engendré une erreur, une exception d'exécution ou une réponse correcte. Si une erreur est détectée, le sélecteur d'erreurs renvoie le nom de l'erreur native au serveur afin que JAXWSDataHandler puisse convertir l'objet exception en objet métier d'erreur. |
Sélecteur de fonction d'importation EJB | Dérive le type de méthode EJB en fonction du nom de méthode WSDL appelé par un composant SCA lors de l'importation EJB. S'il est présent, il utilise l'annotation @WebMethod pour déterminer le mappage correct de la méthode Java pour la méthode WSDL. Si l'annotation @WebMethod est manquante, le sélecteur de fonction renvoit une méthode Java d'un nom identique à celui de la méthode WSDL. |
Si votre scénario utilisateur ne prend pas en charge JAX-WS et nécessite un mappage personnalisé, un gestionnaire de données, un sélecteur de fonction et un sélecteur d'erreur personnalisés peuvent s'avérer nécessaires pour accomplir les tâches habituellement dévolues à JAXWSDataHandler, EJBFaultSelector et EJBImportFunctionSelector. Ces tâches incluent le mappage normalement effectué par l'algorithme de mappage personnalisé.
Dans les circonstances nécessitant une transformation des données, le contrat entre une liaison EJB et le gestionnaire de données est réalisé au moyen d'un tableau d'objets Java (Object[]).
La liaison prépare un objet[] pour traiter la réponse à partir de l'appel EJB. Le premier élément dans l'objet[] correspond à la valeur renvoyée par l'appel de méthode Java. Les valeurs suivantes représentent les paramètres d'entrée de la méthode. Ces dernières sont nécessaires pour prendre en charge les paramètres de type entrée/sortie et sortie. Pour les paramètres de type sortie, la valeur doit être renvoyée dans l'objet de données de réponse. Le gestionnaire de données traite et transforme les valeurs rencontrées dans l'objet[], puis renvoie une réponse à l'objet de données.
Le gestionnaire de données spécifié au niveau de la liaison EJB est utilisé pour traiter les demandes, les réponses, ainsi que les exceptions d'erreur et d'exécution. Pour les erreurs, un gestionnaire de données propre peut être spécifié pour chaque erreur en indiquant la propriété de configuration faultBindingType. Cette dernière remplace la valeur spécifiée au niveau de la liaison EJB.
Le gestionnaire de données JAX-WS est utilisé par défaut lorsque la liaison EJB dispose d'une interface WSDL. Ce gestionnaire de données est conforme à la spécification JAX-WS (API Java API pour le service Web basé XML) et utilisé pour convertir l'appel de méthode WSDL en appel de méthode Java pour l'importation (traitement d'événement sortant). Il gère également la conversion des exceptions Java en objets de données d'erreur à des fins de traitement des erreurs et pour les exceptions d'exécution lorsque le sélecteur d'erreurs renvoie des exceptions de type ResponseType.RUNTIME. Ce gestionnaire de données ne peut pas être utilisé pour transformer un message SOAP représentant un appel JAX-WS en objet de données.
public class TestType { private Object[] object; @XmlAnyElement (lax=true) public Object[] getObject() { return object; ) public void setObject (Object[] object) { this.object=object; ) )Cela permet de transformer l'objet de propriété dans TestType en champ xs:any. La valeur de classe Java utilisée dans le champ xs:any doit inclure l'annotation @XmlAnyElement. Par exemple, si Adresse est la classe Java utilisée pour remplir la matrice d'objets, elle doit comporter l'annotation @XmlRootElement.
Le contrat entre une liaison EJB et le gestionnaire d'erreurs est réalisé au moyen d'un tableau d'objets Java (Object[]).
Si l'importation réussit, la liaison assemble un objet[]. Le premier élément de l'objet[] est la valeur renvoyée par l'appel de méthode Java. Les valeurs suivantes représentent les paramètres d'entrée de la méthode. Ces dernières sont nécessaires pour prendre en charge les paramètres de type entrée/sortie et sortie.
Type | Valeur renvoyée |
---|---|
Erreur | ResponseType.FAULT |
Exceptions d'exécution | ResponseType.RUNTIME |
Réponse normale | ResponseType.RESPONSE |
Ce dernier suit le contrat du sélecteur d'erreurs avec la liaison d'importation EJB. Il renvoie ResponseType.BUSINESSFAULT si l'objet[] transmis contient un objet d'exception. Si l'objet d'exception ne correspond à aucun des types d'exception déclarés sur la méthode, il renvoie ResponseType.RUNTIME_EXCEPTION. Sinon, il renvoie ResponseType.RESPONSE.
Le contrat entre une liaison EJB et le sélecteur de fonction d'importation est réalisé au moyen d'un tableau d'objets Java (Object[]).
Le premier élément de l'objet[] est le nom du langage WSDL. Le deuxième élément de l'objet[] est l'objet métier d'entrée. Le sélecteur de fonction renvoie un objet java.lang.reflect.Method qui représente la méthode de l'interface EJB.
Ce sélecteur de fonction suit le contrat du sélecteur de fonction avec la liaison d'importation EJB. Le premier élément de l'objet[] est une méthode Java incluant le nom du langage WSDL. Il suit les annotations JAX-WS pour dériver la méthode Java d'une méthode WSDL donnée et utilise les annotations de l'objet de données d'entrée pour dériver le nom de la classe Java qui définit l'interface EJB.