Exemple : Utilisation des propriétés JAX-WS pour manipuler des en-têtes SOAP dans un gestionnaire JAX-WS

WebSphere Application Server fournit des extensions aux modèles de programmation client JAX-RPC (Java™ API for XML-Based Web Services (JAX-WS) et Web Services for Java EE (Java Platform, Enterprise Edition), y compris les propriétés des modules de remplacement jaxws.binding.soap.headers.outbound et jaxws.binding.soap.headers.inbound . Cet exemple présente l'utilisation de ces deux propriétés pour manipuler des en-têtes SOAP dans un gestionnaire JAX-WS

Eviter les incidents Eviter les incidents: Ces extensions d'API et les API standard ne peuvent pas être utilisées pour manipuler les en-têtes SOAP dans le même gestionnaire JAX-WS. Vous devez déterminer si vous voulez utiliser ces extensions ou les API standard lors de la configuration du traitement des en-têtes SOAP d'un gestionnaire JAX-WS.gotcha
L'exemple de programmation qui suit explique comment paramétrer deux en-têtes SOAP de demande et extraire un en-tête SOAP de réponse au sein d'un gestionnaire JAX-WS :
1  //Créez les tables de hachage pour des en-têtes SOAP sortants
2  Map<QName, List<String>> outboundHeaders=messageContext.get("jaxws.binding.soap.headers.outbound"); 
3
4  //Ajoutez "AtmUuid1" et "AtmUuid2" à la mappe sortante
5  List<String> list1 = new ArrayList<String>();
6  list1.add("<AtmUuid1 xmlns=\"com.rotbank.security\"><uuid>ROTB-0A01254385FCA09</uuid></AtmUuid1>");
7  List<String> list2 = new ArrayList<String>();
8  list2.add("<AtmUuid2 xmlns=\"com.rotbank.security\"><uuid>ROTB-0A01254385FCA09</uuid></AtmUuid2>"
9  outboundHeaders.put(new QName("com.rotbank.security", "AtmUuid1"), list1);
10 outboundHeaders.put(new QName("com.rotbank.security", "AtmUuid2"), list2);
11 // Set the outbound map on the MessageContext object, which is passed into the JAX-WS handler method
12 messageContext.put("jaxws.binding.soap.headers.outbound", outboundHeaders);

Sur la ligne 2, récupérez la mappe d'en-tête SOAP sortante du paramètre MessageContext transféré dans la méthode du gestionnaire JAX-WS.

Sur les lignes 5 à 10, les éléments des en-têtes AtmUuid1 et AtmUuid2 sont ajoutés à la mappe sortante.

Sur la ligne 12, la mappe sortante est définie sur le contexte du gestionnaire JAX-WS, ce qui cause l'ajout des en-têtes AtmUuid1 et AtmUuid2 au message de la demande. Ce code n'est pas nécessaire, car la mappe outboundHeaders est une mappe directe.

Les méthodes du gestionnaire JAX-WS permettent également de récupérer des en-têtes spécifiques de la mappe et de supprimer les en-têtes ou toutes les listes d'en-têtes si vous le souhaitez.

Remarque : Utilisez uniquement ces API ou les API standard pour traiter un message. N'utilisez pas les deux en même temps.

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