Enlazadores de datos personalizados para aplicaciones JAX-RPC

Un enlazador de datos personalizado se utiliza para correlacionar tipos de esquema XML con los objetos Java™. Los enlazadores de datos personalizados proporcionan enlaces para los tipos de esquema XML que no están soportados por la especificación JAX-RPC (Java API for XML-based Remote Call Procedure) actual.

El enlazador de datos personalizado define métodos de serialización y deserialización para realizar tareas de conversión entre un objeto Java y una interfaz SOAPElement. Un enlazador de datos personalizado se añade al sistema de tiempo de ejecución e interactúa con el tiempo de ejecución de servicios web utilizando SOAPElement. A diferencia de los deserializadores convencionales, los enlazadores de datos personalizados no se basan en los sucesos de análisis de nivel bajo del tiempo de ejecución para crear el objeto Java , por ejemplo, SAX (Simple API for XML). En su lugar, el tiempo de ejecución crea el enlazador de datos personalizado mediante la representación del mensaje SOAP de entrada en un SOAPElement. El SOAPElement que contiene el mensaje se pasa al enlazador de datos personalizado. Por ejemplo, si el mensaje de entrada contiene un gráfico de datos SDO (Service Data Object), el sistema de tiempo de ejecución realiza los siguientes procesos:
  1. El sistema de tiempo de ejecución reconoce el código <sdo:Datagraph>.
  2. El tiempo de ejecución consulta el sistema de correlación de tipos para localizar el enlazador de datos personalizado de los datos del gráfico de datos, por ejemplo, SDOCustomBinder.
  3. Se crea un SOAPElement que representa el gráfico de datos SDO.
  4. El tiempo de ejecución pasa el SOAPElement al SDOCustomBinder.
En el método deserializado, el SDOCustomBinder extrae el contenido del SOAPElement y crea un objeto DataGraph concreto con un tipo commonj.sdo.DataGraph.

Flujo de tiempo de ejecución de servicios web utilizando un enlazador de datos personalizado

Cuando un objeto Java se deserializa, se produce un proceso similar. El tiempo de ejecución localiza un enlazador de datos personalizados y convierte el objeto Java en un SOAPElement. El tiempo de ejecución serializa el SOAPElement en el mensaje sin procesar transportado en la corriente de salida.

A continuación, se muestra el ejemplo de un esquema XML definido por la especificación 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 define la interfaz CustomBinder que implementa enlaces personalizados concretos para un tipo de esquema XML específico.

El proveedor de enlaces personalizados se utiliza para importar los enlaces personalizados al tiempo de ejecución. Para aprender a conectar los enlazadores de datos personalizados a la herramienta de línea de mandatos WSDL2Java para funciones de desarrollo, consulte la información acerca de proveedores de enlaces personalizados. También puede consultar la información acerca de patrones de uso para desplegar enlazadores de datos personalizados para obtener más información sobre cómo se despliega el paquete del proveedor en el tiempo de ejecución y también los roles requeridos en el proceso de enlaces personalizados.


Icon that indicates the type of topic Concept topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwbs_custombinders
File name: cwbs_custombinders.html