Implizite SOAP-Header mit JAX-WS empfangen
Sie können einem vorhandenen JAX-WS-Web-Service-Client (Java™ API for XML-Based Web Services) ermöglichen, Werte aus impliziten SOAP-Headern zu empfangen. Wenn Sie Ihren Clientcode ändern, um implizite SOAP-Header abzurufen, können Sie bestimmte Informationen in einer eingehenden Web-Service-Antwort empfangen.
Vorbereitende Schritte
Für die Ausführung dieser Task benötigen Sie einen Web-Service-Client, dem Sie das Empfangen impliziter SOAP-Header ermöglichen können.
- Ein Nachrichtenabschnitt, der in der Bindung in der WSDL-Datei als SOAP-Header deklariert ist, dessen Nachrichtendefinition aber nicht von einem Element "portType" in einer WSDL-Datei referenziert wird.
- Ein Element, das nicht in der WSDL-Datei enthalten ist.
Handler- und Serviceendpunkte können implizite oder explizite SOAP-Header mit dem SAAJ-Datenmodell (SOAP with Attachments API for Java) bearbeiten.
Bei der Verwendung von JAX-WS gibt es keine Beschränkung der Headertypen, die Sie bearbeiten können.
Informationen zu diesem Vorgang
Die Clientanwendung legt die Eigenschaften im Dispatch- bzw. Proxy-Objekt fest, um implizite SOAP-Header zu senden und zu empfangen.
Vorgehensweise
- Setzen Sie einen Remote-Methodenaufruf über das Dispatch- bzw. Proxy-Objekt ab.
- Rufen Sie mit dem Eigenschaftsnamen com.ibm.wsspi.websvcs.Constants.JAXWS_INBOUND_SOAP_HEADERS das Objekt Map<QName, List<Zeichenfolge>> aus dem ResponseContext-Objekt des Dispatch- bzw. Proxy-Objekts ab.
- Rufen Sie unter Verwendung des QName-Objekts des SOAP-Headers aus dem Wert Map<QName, List<Zeichenfolge>> ein Objekt List<Zeichenfolge> ab. Wenn der Wert List<Zeichenfolge> vorhanden ist, enthält er kein Zeichenfolgeobjekt oder mehrere Zeichenfolgeobjekte, die den XML-Text der SOAP-Header für das entsprechende QName-Objekt enthalten.
Ergebnisse
Sie haben einen JAX-WS-Web-Service-Client, der Werte aus impliziten SOAP-Headern empfangen kann.