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

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.