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

Vous pouvez activer un client existant de services Web JAX- RPC (Java™ API for XML-based RPC) afin que des informations définies par l'application puissent être envoyées en même temps que vos demandes de service Web par le biais d'en-têtes de transport.

Avant de commencer

Vous avez besoin d'un client de services Web JAX-RPC qui peut être activé pour envoyer des en-têtes de transport.

L'envoi d'en-têtes de transport est pris en charge uniquement par les 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

Quand le modèle de programmation JAX-RPC est utilisé, le client doit définir une propriété sur l'objet Stub ou Call pour l'envoi de valeurs dans les en-têtes de transport. Une fois la propriété définie, les valeurs sont définies pour toutes les demandes liées aux appels de méthode distante ultérieurs sur l'objet 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 envoyer des valeurs dans des en-têtes de transport sur des demandes sortantes, modifiez le code client comme suit :

Procédure

  1. Créez un objet java.util.HashMap contenant les identificateurs d'en-tête de transport.
  2. Ajoutez une entrée à l'objet HashMap pour chaque en-tête de transport que le client doit envoyer.
    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 par vous-même avec un nom d'en-tête réservé, comme Cookie dans le cas d'un transport HTTP, ou 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 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.
    2. Définissez comme valeur de l'entrée HashMap une chaîne contenant la valeur de l'en-tête de transport.
  3. Définissez l'entrée HashMap pour l'objet Stub ou Call à l'aide de la propriété com.ibm.websphere.webservices.Constants.REQUEST_TRANSPORT_PROPERTIES. Lorsque la valeur de la propriété REQUEST_TRANSPORT_PROPERTIES est définie, ce HashMap est utilisé dans les appels ultérieurs pour définir les valeurs d'en-tête dans les demandes sortantes. Si la valeur de la propriété REQUEST_TRANSPORT_PROPERTIES est null, aucun HashMap n'est utilisé dans les appels ultérieurs pour définir les valeurs d'en-tête dans les demandes sortantes. Pour plus de détails sur ces propriétés, consultez la documentation sur les propriétés d'en-tête de transport.
  4. Lancez les appels de méthode distante sur l'objet Stub ou Call. Les en-têtes et les valeurs associées de HashMap sont ajoutés à la demande sortante pour chaque appel de méthode. Si l'appel utilise HTTP, les en-têtes de transport sont envoyés en tant qu'en-têtes HTTP dans la demande HTTP. Si elle utilise JMS, les en-têtes sont envoyés en tant que propriétés de message JMS.
    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é définie pour l'objet Stub ou Call doit être un objet HashMap, ou être null.
    • Le HashMap ne doit pas être vide.
    • Chaque clé du HashMap doit être un objet String.
    • Chaque valeur du HashMap doit être un objet String.

Résultats

Vous disposez d'un client de services Web JAX-RPC configuré pour l'envoi d'en-têtes de transport.


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_cookie
Nom du fichier : twbs_cookie.html