Implizite SOAP-Header mit JAX-RPC empfangen

Sie können einem vorhandenen JAX-RPC-Web-Service-Client (Java™ API for XML-based RPC) ermöglichen, Werte in 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 impliziter SOAP-Header ist ein SOAP-Header, auf den eine der folgenden Beschreibungen passt:
  • 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.

Geschützte SOAP-Header können nicht bearbeitet werden. Ein SOAP-Header der von seiner Eignerkomponente, z. B. Web Services Security, als geschützt deklariert ist, steht Clientanwendungen nicht zur Verfügung. Es tritt eine Ausnahme ein, wenn Sie versuchen, geschützte SOAP-Header zu bearbeiten.

Informationen zu diesem Vorgang

Die Clientanwendung setzt Eigenschaften im Stub- oder Call-Objekt, um implizite SOAP-Header zu senden und zu empfangen.

Vorgehensweise

  1. Erstellen Sie ein Objekt "java.util.HashMap".
  2. Fügen Sie dem HashMap-Objekt für jeden impliziten SOAP-Header, den der Client empfangen möchte, einen Eintrag hinzu. Der HashMap-Eintragsschlüssel ist der QName (qualifizierte Name) des SOAP-Headers. Der HashMap-Eintragswert ist null.
  3. Legen Sie den HashMap-Eintrag im Stub- bzw. Call-Objekt fest. Der Eigenschaftsname ist "com.ibm.websphere.webservices.Constants.RESPONSE_SOAP_HEADERS". Der Eigenschaftswert ist "HashMap".
  4. Setzen Sie ferne Methodenaufrufe an das Stub- oder Call-Objekt ab. Die Web-Service-Engine extrahiert die angegebenen Antwortheader aus der Web-Service-Antwortnachricht und fügt sie in das HashMap-Objekt ein. Nach der Rückkehr der Methode, ist der Zugriff auf die Antwortheader im HashMap-Objekt möglich.
    Es kann ein Fehler vom Typ JAXRPCException eintreten, wenn eine der folgenden Aussagen zutrifft:
    • Das HashMap-Objekt enthält einen Schlüssel, der kein QName ist.
    • Das HashMap-Objekt enthält einen Schlüssel, der einen SOAP-Header darstellt, der von der Eignerkomponente als geschützt deklariert wurde.

Ergebnisse

Sie haben einen JAX-RPC-Web-Service-Client, der Werte aus impliziten SOAP-Headern empfangen kann.


Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_retrievesoaphead
Dateiname:twbs_retrievesoaphead.html