Lieurs de données personnalisés pour les applications JAX-RPC

Un lieur de données personnalisé permet de mapper les types de schéma XML avec des objets Java™. Il fournit des liaisons pour des types de schéma XML non pris en charge par l'API Java en cours pour la spécification JAX-RPC (Java API for XML-based Remote Call Procedure).

Le lieur de données personnalisé définit les méthodes de sérialisation et de désérialisation permettant d'effectuer des conversions entre un objet Java et une interface SOAPElement. Il est ajouté au système d'exécution et interagit avec le module d'exécution des services web par le biais d'une interface SOAPElement. Contrairement aux programmes de désérialisation conventionnels, les lieurs de données personnalisés ne reposent pas sur les événements d'analyse de bas niveau du module d'exécution pour créer l'objet Java, tel que SAX (Simple API for XML). En revanche, le module d'exécution crée le lieur de données personnalisé en restituant le message SOAP entrant sous la forme d'une interface SOAPElement. Cette dernière, qui contient le message, est transmise au lieur de données personnalisé. Par exemple, si le message entrant contient un graphique de données SDO (Service Data Object), le système d'exécution effectue le traitement suivant :
  1. Le système d'exécution reconnaît le code <sdo:Datagraph>.
  2. Il demande au système de mappage de types de localiser le lieur de données personnalisé pour les données du graphique de données, par exemple SDOCustomBinder.
  3. Une interface SOAPElement destinée à représenter le graphique de données SDO entrant est créée.
  4. Le module d'exécution transmet l'interface SOAPElement au lieur SDOCustomBinder.
A partir de la méthode désérialisée, le lieur SDOCustomBinder extrait le contenu de l'interface SOAPElement et crée un objet DataGraph concret de type commonj.sdo.DataGraph.

Flux du programme d'exécution des services Web utilisant un lieur de données personnalisées

Lorsqu'un objet Java est sérialisé, un processus similaire est mis en oeuvre. Le module d'exécution recherche un lieur de données personnalisé et convertit l'objet Java en une interface SOAPElement. Il sérialise cette dernière en message brut transporté dans le flux de sortie.

Voici un exemple de schéma XML défini par la spécification SDO :
<xsd:schema
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:sdo="commonj.sdo"
  targetNamespace="commonj.sdo">

  <xsd:element name="datagraph" type="sdo:DataGraphType"/>
  
  <xsd:complexType name="DataGraphType">
  <xsd:complexContent>
    <xsd:extension base="sdo:BaseDataGraphType">
      <xsd:sequence>
        <xsd:any minOccurs="0" maxOccurs="1" 
                 namespace="##other" processContents="lax"/>
      </xsd:sequence>
    </xsd:extension>
  </xsd:complexContent>
  </xsd:complexType>

  <xsd:complexType name="BaseDataGraphType" abstract="true">
  <xsd:sequence>
    <xsd:element name="models" type="sdo:ModelsType" minOccurs="0"/>
    <xsd:element name="xsd" type="sdo:XSDType" minOccurs="0"/>
    <xsd:element name="changeSummary"
                 type="sdo:ChangeSummaryType" minOccurs="0"/>
   </xsd:sequence>
  <xsd:anyAttribute namespace="##other" processContents="lax"/>
  </xsd:complexType>
    
  <xsd:complexType name="ModelsType">
  <xsd:sequence>
    <xsd:any minOccurs="0" maxOccurs="unbounded" 
             namespace="##other" processContents="lax"/>
  </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="XSDType">
  <xsd:sequence>
    <xsd:any minOccurs="0" maxOccurs="unbounded" 
        namespace="http://www.w3.org/2001/XMLSchema" processContents="lax"/>
  </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="ChangeSummaryType">
  <xsd:sequence>
    <xsd:any minOccurs="0" maxOccurs="unbounded" 
             namespace="##any" processContents="lax"/>
  </xsd:sequence>
  <xsd:attribute name="create" type="xsd:string"/>
  <xsd:attribute name="delete" type="xsd:string"/>
  </xsd:complexType>

</xsd:schema> 

WebSphere Application Server définit l'interface CustomBinder qui implémente les liaisons personnalisées pour un type de schéma XML spécifique.

Le fournisseur de liaison personnalisé permet d'importer les liaisons personnalisées dans le module d'exécution. Pour savoir comment intégrer les lieurs de données personnalisés à l'outil de ligne de commande WSDL2Java pour le développement, reportez-vous aux fournisseurs de liaisons personnalisés. Vous pouvez aussi lire les informations sur les modèles d'utilisation permettant le déploiement des lieurs de données personnalisés et en apprendre davantage sur la façon de déployer le module du fournisseur dans votre environnement d'exécution ainsi que sur les rôles impliqués dans le processus de liaison personnalisé.


Icône indiquant le type de rubrique Rubrique de concept



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwbs_custombinders
Nom du fichier : cwbs_custombinders.html