Mappage des graphiques de données SDO pour des messages des services Web

La structure des messages des services Web est décrite par les graphiques de données d'objets SDO (Service Data Objects) Version 1 des messages des services Web.

Présentation générale d'un message des services Web

Un message des services Web est décrit par une chaîne de format et trois zones de métadonnées : operationName, messageName et messageType. La charge utile du message est répartie entre les trois autres sections : en-têtes, pièces jointes et corps.

Le noeud Info occupe le sommet du graphique de données SDO pour tous les messages des services Web. Le tableau ci-après décrit les propriétés du noeud Info et les types associés.

Nom de la propriété Type de propriété Description de la propriété
operationName java.lang.String Identifie l'opération WSDL associée au message. Si le service d'accès aux données ne peut pas identifier le message, cette zone est NULL. Voir Identification des messages des services Web.
messageName java.lang.String Identifie le message WSDL associé au message. Si le service d'accès aux données ne peut pas identifier le message, cette zone est NULL. Voir Identification des messages des services Web.
messageType java.lang.String Identifie le type de service Web de l'instance du message. Cette zone accepte les valeurs entrée, sortie, erreur et ambigu. Si le service d'accès aux données ne peut pas identifier le message, cette zone est NULL. Voir Identification des messages des services Web.
en-têtes Liste java.util.List d'objets de données. Contient une liste des objets de données d'entrée d'en-tête. Chaque en-tête SOAP du message résulte en une entrée d'en-tête dans cette liste. Voir Disposition des en-têtes de message.
associations Liste java.util.List d'objets de données. Contient une liste des objets de données d'entrée de pièce jointe. Pour les messages SOAP contenant des pièces jointes, chaque partie MIME du message (exceptée la partie MIME contenant l'enveloppe SOAP) est mappée à une entrée de cette liste. Voir Disposition des pièces jointes de message.
body commonj.sdo.DataObject Objet de données imbriqué, qui représente le corps de l'enveloppe SOAP. Voir Disposition des corps de message.

Identification des messages des services Web

Le traitement des messages dépend de la présence ou non de définitions WSDL dans les messages. La quantité minimale d'informations requise pour un traitement sans WSDL est "SOAP:". La quantité minimale d'informations requise pour un traitement avec WSDL est : "SOAP:location,namespace,service,port". Si la chaîne de format n'inclut pas l'intégralité de ces cinq zones, le service d'accès aux données SOAP essaye de traiter le message sans WSDL.

  • Traitement des messages sans définitions WSDL : si la chaîne de format ne contient pas l'intégralité des informations WSDL, le service d'accès aux données SOAP traite le message sans essayer de rechercher une correspondance du message dans les définitions du WSDL. Il en résulte qu'operationName et messageName ont la valeur NULL et que messageType n'est défini que lors du traitement d'un message d'erreur.
  • Traitement des messages avec des définitions WSDL : si la chaîne de format contient <Emplacement WSDL>,<Espace de nom de service>,<Nom de service> et <Nom du port>, les services d'accès aux données SOAP et Beans traitent le message en utilisant les définitions WSDL du service.
    Remarque : Dans les situations suivantes, le traitement du message SOAP échoue une fois qu'il a fourni toutes les informations WSDL nécessaires :
    • le service d'accès aux données SOAP ne parvient pas à trouver le WSDL,
    • le WSDL ne parvient pas à confirmer le message.

Lorsque le service d'accès aux données SOAP traite un message de demande ou de réponse SOAP, il essaye de le rechercher dans les définitions de message du WSDL. Il existe généralement une définition correspondante et les zones operationName, messageName et messageType sont renseignées correctement. Si le service d'accès aux données trouve plusieurs définitions correspondantes, il choisit une définition de message et renseigne les zones operationName et messageName, et définit messageType sur ambigu.

Lors du traitement des messages d'erreur, l'identification est légèrement différente. Dans tous les cas, la zone messageType a la valeur erreur. Si le message correspond à une définition d'erreur unique dans le WSDL, les propriétés operationName et messageName sont également définies.

Disposition des en-têtes de message

La liste des en-têtes peut comporter deux types d'entrée, l'entrée d'en-tête ou l'entrée d'en-tête lié, suivant que l'en-tête est basé sur une partie du message ou non.

Le type d'entrée d'en-tête permet de gérer les en-têtes qui répondent à l'un des critères suivants :
  • l'en-tête fait partie du message modélisé dans WSDL,
  • l'en-tête fait partie du message modélisé dans WSDL mais est basé sur une partie du message.
Pour obtenir un modèle de cet en-tête, voir Entrée d'en-tête.

Le type d'entrée d'en-tête lié est utilisé lorsque la liaison SOAP du message a associé une partie du corps dans une pièce jointe MIME. (Cela se produit si vous utilisez un élément <MIME:content> pour associer une partie du message à une pièce jointe.) Pour une programmation cohérente des médiations, toutes les données du corps sont stockées dans le noeud corps, dans le graphe. Contrairement à l'entrée de pièce jointe normale, une entrée de pièce jointe liée est insérée dans la liste des pièces jointes. L'entrée de pièce jointe liée contient les métadonnées MIME de la pièce jointe et le nom de la partie du message qui contient les données extraites de cette pièce jointe. Cela permet aux médiations conçues pour traiter les pièces jointes de rechercher les données dans la partie du corps du graphique de données. Pour obtenir un modèle de cette pièce jointe, voir Entrée d'en-tête lié.

Entrée d'en-tête

Nom de la propriété Type de propriété Description de la propriété
mustUnderstand java.lang.Boolean Contient la valeur de l'attribut mustUnderstand de l'en-tête SOAP, s'il est présent.
actor java.lang.String Contient la valeur de l'attribut actor de l'en-tête SOAP, s'il est présent.
tout commonj.sdo.Sequence Conteneur du contenu de l'en-tête SOAP.

Entrée d'en-tête lié

Nom de la propriété Type de propriété Description de la propriété
mustUnderstand java.lang.Boolean Contient la valeur de l'attribut mustUnderstand de l'en-tête SOAP, s'il est présent.
actor java.lang.String Contient la valeur de l'attribut actor de l'en-tête SOAP, s'il est présent.
messagePart java.lang.String Contient le nom de la partie du message qui contient les données de cet en-tête de message.

Disposition des pièces jointes de message

Les pièces jointes des messages sont gérées de la même manière que les en-têtes et les instances de ces pièces jointes alimentent la liste des pièces jointes dans le noeud Info.

Il existe deux types d'entrée de pièce jointe permettant de gérer les pièces jointes MIME : l'entrée de pièce jointe et l'entrée de pièce jointe liée.

L'entrée de pièce jointe s'applique aux pièces jointes générales, voir Entrée de pièce jointe.

L'entrée de pièce jointe liée inclut des éléments <MIME:content> qui associent une partie du corps à une pièce jointe MIME. Si vous programmez une médiation, vous devez savoir comment rechercher les données dans le graphique. Pour une programmation cohérente des médiations, les données de pièce jointe sont placées dans le corps du message et référencées par le nom de la partie dans l'entrée d'en-tête, qui inclut les autres métadonnées MIME. Pour obtenir un modèle de cette pièce jointe, voir Entrée de pièce jointe liée.

Entrée de pièce jointe

Nom de la propriété Type de propriété Description de la propriété
contentType java.lang.String Contient le type de contenu de la partie MIME représentée par l'entrée de pièce jointe.
contentTransferEncoding java.lang.String Contient le codage du transfert du contenu de la partie MIME représentée par l'entrée de pièce jointe.
contentId java.lang.String Contient l'ID contenu de la partie MIME représentée par l'entrée de pièce jointe.
data byte[] Contient le contenu de l'élément MIME sous forme de tableau d'octets.

Entrée de pièce jointe liée

Nom de la propriété Type de propriété Description de la propriété
contentType java.lang.String Contient le type de contenu de la partie MIME représentée par l'entrée de pièce jointe.
contentTransferEncoding java.lang.String Contient le codage du transfert du contenu de la partie MIME représentée par l'entrée de pièce jointe.
contentId java.lang.String Contient l'ID contenu de la partie MIME représentée par l'entrée de pièce jointe.
messagePart java.lang.String Contient le nom de la partie du message qui contient les données de cette pièce jointe.

Disposition des corps de message

La présentation de l'objet de données dans le corps est définie par le WSDL du service. Le type de l'objet de données découle de la définition du message dans le WSDL. L'objet de données contient une propriété pour chaque partie de la définition du message. La disposition de chaque partie du message suit la convention de mappage d'un schéma XML à SDO. Voir Exemple de code de services Web pour plus d'informations.

Message d'erreur des services Web

Si le message correspond à un message d'erreur, la zone messageType (dans le noeud Info du graphique) a la valeur "erreur", et le corps du message contient les propriétés suivantes :

Nom de la propriété Type de propriété Description de la propriété
faultcode javax.xml.namespace.QName Contient la valeur faultcode de l'élément Erreur SOAP
faultstring java.lang.String Contient la valeur faultstring de l'élément Erreur SOAP
faultactor java.lang.String Contient la valeur faultactor de l'élément Erreur SOAP
detail commonj.sdo.DataObject Contient le contenu dans l'enfant détail de l'élément Erreur SOAP
Remarque : La définition de l'élément détail utilise des caractères génériques d'élément et d'attribut, le contenu de l'objet de données détail contient donc une séquence. Pour plus d'informations, voir Exemple de code de services Web.

Icône indiquant le type de rubrique Rubrique de référence



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=rjy1111
Nom du fichier : rjy1111.html