Extraction d'en-têtes de transport avec JAX-RPC

Vous pouvez activer un client de services Web JAX-RPC (Java™ API for XML-based RPC) existant pour extraire des valeurs à partir des en-têtes de transport. Pour une demande qui utilise le protocole HTTP, les en-têtes de transport sont extraits à partir des en-têtes HTTP présents dans le message de réponse HTTP. Pour une demande qui utilise le JMS (Java Message Service), les en-têtes de transport sont extraits à partir des propriétés de message JMS présentes dans le message de réponse JMS.

Avant de commencer

Vous avez besoin d'un client de services Web que vous pouvez activer pour extraire des en-têtes de transport.

L'extraction d'en-têtes de transport est prise en charge uniquement par des clients de services Web, et uniquement pour les transports HTTP et JMS. Le client de services Web doit appeler directement les API JAX-RPC et ne pas passer par les couches intermédiaires, comme la fonction de passerelle. L'envoi et l'extraction d'en-têtes de transport côté serveur de services Web s'effectuent via des API de services non Web.

Pourquoi et quand exécuter cette tâche

Lors de l'utilisation du modèle de programmation JAX-RPC, le client doit définir une propriété sur l'objet Stub ou Call pour extraire les valeurs contenues dans les en-têtes de transport. Une fois la propriété définie, les valeurs sont lues dans toutes les réponses aux appels de méthode ultérieurs par rapport à l'instance Stub ou Call jusqu'à ce que la propriété associée soit définie ànull ou que l'objet Stub ou Call soit supprimé.

Pour extraire des valeurs des en-têtes de transport sur des réponses entrantes, modifiez le code client.

Procédure

  1. Créez un objet java.util.HashMap contenant les noms des en-têtes de transport à extraire à partir des messages de réponse entrants.
  2. Ajoutez une entrée à l'objet HashMap pour chaque en-tête dont vous voulez extraire une valeur à partir de chaque message de réponse entrant.
    1. Définissez la clé d'entrée HashMap en une chaîne correspondant exactement à l'identificateur de l'en-tête de transport. L'identificateur d'en-tête peut être défini comme un nom d'en-tête réservé, comme Cookie dans le cas du HTTP, ou défini par l'utilisateur, par exemple MyTransportHeader. Certains identificateurs d'en-tête sont traités de manière unique, mais aucune autre vérification n'est effectuée pour confirmer la valeur des identificateurs d'en-tête. Pour plus de détails sur les identificateurs d'en-tête HTTP, voir les rubriques relatives aux valeurs recommandées pour les propriétés d'en-tête. Vous pouvez définir des constantes de chaînes d'identificateur d'en-têtes courantes, telles que HTTP_HEADER_SET_COOKIE figurant dans la classe com.ibm.websphere.webservices.Constants. Il n'est pas nécessaire de définir la valeur d'entrée HashMap car elle est ignorée. Un objet HashMap vide (par exemple non nul, mais qui ne contient aucune clé) entraîne l'extraction de tous les en-têtes de la réponse.
  3. Définissez l'entrée HashMap sur l'objet Stub ou Call à l'aide de la propriété com.ibm.websphere.webservices.Constants.RESPONSE_TRANSPORT_PROPERTIES. Lorsque le HashMap est défini, la propriété RESPONSE_TRANSPORT_PROPERTIES est utilisé dans des appels ultérieurs pour extraire les en-têtes contenus dans les réponses. Si vous attribuez la valeur null à la propriété, aucun en-tête ne sera extrait de la réponse. Pour plus de détails sur ces propriétés, voir la documentation sur les propriétés d'en-têtes de transport.
  4. Lancez les appels de méthode distante sur l'objet Stub ou Call. Les valeurs des en-têtes de transport spécifiés sont extraites du message de réponse, puis placées dans le HashMap.
    Si la propriété n'est pas définie correctement, des erreurs liées à l'utilisation de l'API peuvent se produire et générer une erreur JAXRPCException. Les exigences suivantes doivent être remplies, faute de quoi le processus échouera :
    • La valeur de la propriété qui est définie sur l'objet Stub ou Call est null ou l'instance d'un HashMap.
    • Toutes les clés HashMap doivent être du type Chaîne et ne doivent pas avoir la valeur null.

Résultats

Vous disposez d'un service Web JAX-RPC qui peut recevoir des en-têtes de transport à partir de messages de réponse entrants.

Icône indiquant le type de rubrique Rubrique de tâche



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