Transportheader mit JAX-RPC senden

Sie können einem vorhandenen JAX-RPC-Web-Service-Client (Java™ API for XML-based RPC) ermöglichen, über Transportheader anwendungsdefinierte Informationen zusammen mit Ihren Web-Service-Anforderungen zu senden.

Vorbereitende Schritte

Sie benötigen einen JAX-RPC-Web-Service-Client, den Sie für das Senden von Transportheadern konfigurieren können.

Das Senden von Transportheadern wird nur von Web-Service-Clients und nur für die Transporte HTTP und JMS unterstützt. Der Web-Service-Client muss die JAX-RPC-Anwendungsprogrammierschnittstellen direkt und nicht über zwischengeschaltete Schichten wie eine Gatewayfunktion aufrufen. Für das Senden und Abrufen von Transportheadern auf der Seite des Web-Service-Servers werden keine Web-Service-Anwendungsprogrammierschnittstellen verwendet.

Informationen zu diesem Vorgang

Bei der Verwendung des Programmiermodells JAX-RPC muss der Client eine Eigenschaft im Stub- oder Call-Objekt setzen, um Werte in Transportheadern zu senden. Nachdem Sie die Eigenschaft gesetzt haben, werden so lange Werte in allen Anforderungen für nachfolgende Remote-Methodenaufrufe für das Stub- bzw. Call-Objekt gesetzt, bis die zugeordnete Eigenschaft auf null gesetzt oder das Stub- bzw. Call-Objekt verworfen wird.

Wenn Sie in den Transportheadern abgehender Anforderungen Werte senden möchten, müssen Sie den Clientcode wie folgt ändern:

Vorgehensweise

  1. Erstellen Sie ein java.util.HashMap-Objekt, das die Headerkennungen enthält.
  2. Fügen Sie dem HashMap-Objekt für jeden Transportheader, den der Client senden soll, einen Eintrag hinzu.
    1. Geben Sie als Schlüssel für den HashMap-Eintrag eine Zeichenfolge an, die der Kennung des Transportheaders exakt entspricht. Sie können die Headerkennung mit einem reservierten Headernamen definieren, z. B. als Cookie bei HTTP, oder Sie können eine benutzerdefinierte Headerkennung wie MyTransportHeader verwenden. Bestimmte Headerkennungen werden auf spezielle Weise verarbeitet, aber außer dem Wert für die Headerkennung werden keine anderen Werte geprüft. Weitere Informationen zu den Kennungen für HTTP-Header, die speziell behandelt werden, finden Sie in den bewährten Verfahren für Transportheadereigenschaften. Allgemeine Zeichenfolgenkonstanten für Headerkennungen, wie z. B. HTTP_HEADER_SET_COOKIE, sind in der Klasse "com.ibm.websphere.webservices.Constants" enthalten.
    2. Legen Sie als Wert für den HashMap-Eintrag eine Zeichenfolge fest, die den Wert des Transportheaders enthält.
  3. Setzen Sie den HashMap-Eintrag im Stub- bzw. Call-Objekt mit der Eigenschaft com.ibm.websphere.webservices.Constants.REQUEST_TRANSPORT_PROPERTIES. Wenn ein Wert für die Eigenschaft REQUEST_TRANSPORT_PROPERTIES definiert ist, wird dieser HashMap-Eintrag in nachfolgenden Aufrufen verwendet, um die Headerwerte in die abgehenden Anforderungen einzufügen. Wenn die Eigenschaft REQUEST_TRANSPORT_PROPERTIES auf null gesetzt ist, wird in nachfolgenden Aufrufen kein HashMap-Eintrag verwendet, um Headerwerte in abgehende Anforderungen einzufügen. Weitere Informationen zu diesen Eigenschaften finden Sie in der Dokumentation zu den Transportheadereigenschaften.
  4. Setzen Sie ferne Methodenaufrufe an das Stub- oder Call-Objekt ab. Die Header und die zugehörigen Werte aus dem HashMap-Objekt werden der abgehenden Anforderung bei jedem Methodenaufruf hinzugefügt. Wenn HTTP für den Aufruf verwendet wird, werden die Transportheader als HTTP-Header in der HTTP-Anforderung gesendet. Wenn JMS für den Aufruf verwendet wird, werden die Transportheader als JMS-Nachrichteneigenschaften gesendet.
    Wenn die Eigenschaft nicht ordnungsgemäß definiert ist, können API-Verwendungsfehler auftreten, die zu einem Fehler vom Typ "JAXRPCException" führen. Die folgenden Voraussetzungen müssen erfüllt sein, oder der Prozess scheitert:
    • Der im Stub- bzw. Call-Objekt definierte Eigenschaftswert muss ein HashMap-Objekt oder null sein.
    • Das HashMap-Objekt darf nicht leer sein.
    • Jeder Schlüssel im HashMap-Objekt muss ein Zeichenfolgeobjekt (String) sein.
    • Jeder Wert im HashMap-Objekt muss ein Zeichenfolgeobjekt (String) sein.

Ergebnisse

Sie haben einen JAX-PRC-Web-Service-Client, der für das Senden von Transportheadern konfiguriert ist.


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_cookie
Dateiname:twbs_cookie.html