IBM proprietäre WS-Addressing-SPIs

Die IBM proprietären Systemprogrammierschnittstellen (System Programming Interfaces, SPIs) Web Services Addressing (WS-Addressing) erweitern die IBM proprietären Anwendungsprogrammierschnittstellen (APIs) in der Weise, dass Sie den Inhalt von Endpunktreferenzen und andere WS-Addressing-Artefakte erstellen und planen können und die WS-Addressing-MAPs (Message Addressing Properties, Nachrichtenadressierungseigenschaften) in Web-Service-Nachrichten festlegen oder abrufen können.

Sie können mit diesen proprietären SPIs keine standardmäßig verwendeten JAX-WS-API-Klassen verwenden. Sie haben jedoch die Möglichkeit, Endpunktreferenzen, die mit den standardmäßig verwendeten JAX-WS-API-Klassen erstellt wurden, in Instanzen der proprietären Klasse "com.ibm.websphere.wsaddressing.EndpointReference" zu konvertieren, indem Sie die Klasse "com.ibm.websphere.wsaddressing.jaxws21.EndpointReferenceConverter" verwenden. Sie können diese konvertierten Endpunktreferenzen dann mit den proprietären SPIs verwenden.

Eine ausführliche Beschreibung der in diesem Artikel enthaltenen Programmierschnittstellen finden Sie in der Dokumentation zur Systemprogrammierschnittstelle IBM WS-Addressing.

Den Inhalt von Endpunktreferenzen erstellen, optimieren und planen

Die proprietären Systemprogrammierschnittstellen zum Erstellen, Optimieren und Planen des Inhalts von Endpunktreferenzen sind im Paket "com.ibm.wsspi.wsaddressing" enthalten. Nachfolgend finden Sie eine Übersicht über diese SPIs (die ersten beiden Schnittstellen sind proprietäre API-Schnittstellen, die von den SPIs erweitert wurden):
Ausführliche Informationen zu den bereitgestellten Klassen und Schnittstellen finden Sie in der SPI-Dokumentation.

Die SPI erweitert die WS-Addressing-API "com.ibm.websphere.wsaddressing.EndpointReference" in der Weise, dass über die Schnittstelle "com.ibm.wsspi.wsaddressing.EndpointReference" eine Reihe von zusätzlichen Methoden bereitgestellt wird. Sie können Instanzen von "com.ibm.websphere.wsaddressing.EndpointReference" in "com.ibm.wsspi.wsaddressing.EndpointReference" umsetzen, um Zugriff auf diese erweiterte Funktionalität zu erhalten.

In ähnlicher Weise stellt die SPI "com.ibm.wsspi.wsaddressing.EndpointReferenceManager" eine Erweiterung der von der API "com.ibm.websphere.wsaddressing.EndpointReferenceManager" bereitgestellten Funktionalität dar.

Mit den zusätzlichen Methoden, die die SPIs "EndpointReference" und "EndpointReferenceManager" bereitstellen, können folgende Aktionen ausgeführt werden:
Erstellen von Endpunktreferenzen
Erstellen Sie EndpointReference-Objekte, indem Sie den URI des Endpunkts angeben, den das EndpointReference-Objekt darstellen soll. Verwenden Sie dazu die Operation createEndpointReference(URI) oder die Operation EndpointReferenceManager.createEndpointReference(AttributedURI). Diese Methoden weichen von der auf der Ebene der API verfügbaren Methode createEndpointReference insofern ab, als sie den URI für die EndpointReference nicht automatisch generieren. Sie könnten diese Methoden verwenden, wenn Sie sicher sein können, dass der URI des Endpunkts stabil ist, z. B. in einer Testumgebung, in der keine Einschränkungen für die Implementierung berücksichtigt werden müssen.
Zuordnung von XML- und Java™-Darstellungen einer Endpunktreferenz
Mit der Operation "EndpointReference.getSOAPElement" können Sie Instanzen der Schnittstelle "EndpointReference" in die zugehörigen SOAP-Elementinstanzen serialisieren. Umgekehrt können Sie SOAP-Elemente des Typs "EndpointReferenceType" in die zugehörige EndpointReference- Java-Darstellung entserialisieren, indem Sie die Operation "EndpointReference.createEndpointReference(SOAPElement)" ausführen. Diese Schnittstellen zur Serialisierung und Entserialisierung können hilfreich sein, wenn Sie angepasste Binder für Typen erstellen, die EndpointReference-Instanzen enthalten.
Verwendung komplexerer Referenzparametertypen
Die auf der Ebene der API bereitgestellten proprietären Schnittstellen sind auf Referenzparameter des Typs "xsd:string" beschränkt, um ein einfacheres Programmiermodell zu ermöglichen. Die SPIs erweitern diese Unterstützung, um Referenzparameter des Typs <xsd:any> zuzulassen. Die Schnittstelle "EndpointReference" stellt Methoden bereit, mit denen Referenzparameter als SOAP-Elemente abgerufen und festgelegt werden können. Darüber hinaus stellt die Klasse "EndpointReferenceManager" die Operation "getSOAPElementReferenceParameterFromMessageContext" bereit, mit der die Empfangsendpunkte Referenzparameter aus der eingehenden Nachricht anfordern können, die nicht den Typ String (Zeichenfolge) haben.
Anmerkung: Wenn Sie einen Service mit einem EndpointReference-Objekt aufrufen, das einen Referenzparameter enthält, müssen Sie den Referenzparameter mit einem vollständigen QName-Objekt mit allen Elementen (namespace, localpart und prefix) erstellen. Wenn das QName-Objekt nicht vollständig ist, schlagen die Serviceaufrufe fehl.
Festlegen und Planen des Inhalts von Endpunktreferenzen
Die Schnittstelle "EndpointReference" stellt Operationen bereit, mit denen Sie den Inhalt einer EndpointReference-Instanz festlegen und planen können, beispielsweise die WS-Addressing-Eigenschaften "address" und "metadata". Außerdem werden zusätzliche Schnittstellen bereitgestellt, die die Artefakte darstellen, aus denen sich eine Endpunktreferenz zusammensetzt: Metadata, AttributedURI und ServiceName. Mit Hilfe von Operationen, die die proprietäre Klasse WSAddressingFactory bereitstellt, erstellen Sie Instanzen dieser Schnittstellen.
Anfordern und Ändern des unterstützten Namespace
Die WS-Addressing-Unterstützung in diesem Produkt unterstützt mehrere Namespaces. Mit den Operationen setNamespace und getNamespace der proprietären Schnittstelle EndpointReference können Sie den Namespace eines bestimmten EndpointReference-Objekts ändern und anfordern. Die Serialisierung in SOAP-Elemente erfolgt in Übereinstimmung mit dem Namespace des EndpointReference-Objekts. Standardmäßig definiert der Namespace der Zielendpunktreferenz (die mit der Eigenschaft "com.ibm.websphere.wsaddressing.WSAConstants.WSADDRESSING_DESTINATION_EPR" im Anforderungskontext des JAX-WS-BindingProvider-Objekts oder im JAX-RPC-Stub- bzw. -Call-Objekt angegebene Endpunktreferenz) den Namespace der Messaging-Adressierungseigenschaften der Nachricht.

Nachrichtenadressierungseigenschaften von WS-Addressing festlegen und abrufen

Die IBM proprietäre WS-Addressing-SPI stellt eine Reihe von Konstanten bereit, die JAX-WS- oder JAX-RPC-Eigenschaften angeben, die Sie zum Definieren von WS-Addressing-MAPs für abgehende Nachrichten verwenden können, und Eigenschaften des Nachrichtenkontexts, die Sie verwenden können, um MAPs für eingehende Nachrichten abzurufen. Diese Konstanten werden im unten aufgeführten Diagramm in der Klasse "com.wsspi.wsaddresssing.WSAConstants" dargestellt. Das Diagramm zeigt außerdem die Schnittstellen, die erforderlich sind, um Instanzen der geeigneten Eigenschaftswerttypen AttributedURI und Relationship zu generieren. Die erste WSAConstants-Schnittstelle ist eine proprietäre API.
Ausführliche Informationen zu den Klassen, Schnittstellen und Konstanten, die bereitgestellt werden, finden Sie in der SPI-Dokumentation.

WS-Addressing-MAPs in abgehenden Nachrichten festlegen

Sie können abgehenden Nachrichten WS-Addressing-Informationsheader hinzufügen, indem Sie die entsprechenden Eigenschaften vor dem Aufruf einer Nachricht mit dem BindingProvider-, Stub- oder Call-Objekt im Anforderungskontext des JAX-WS-BindingProvider-Objekts bzw. im JAX-RPC-Stub- oder -Call-Objekt festlegen. In der folgenden Tabelle sind die relevanten Eigenschaften und ihre Typen zusammengefasst.
Tabelle 1. Abgehende Eigenschaften, die im Anforderungskontext des BindingProvider-Objekts (oder Stub- bzw. Call-Objekts) definiert werden können. In der Tabelle sind die verschiedenen Eigenschaftsnamen, ihre Java-Typen, ihre abstrakten WS-Addressing-MAP-Namen und ihre Standardwerte aufgeführt.
Eigenschaftsname (vom Typ String) Java-Typ des Eigenschaftswerts Abstrakter WS-Addressing-MAP-Name in der Notationskonvention des W3C-XML-Informationssets Standardwert
WSADDRESSING_DESTINATION_EPR com.ibm.websphere.wsaddressing.EndpointReference

[destination] URI
[reference parameters]* (any)

Nicht definiert

Diese Eigenschaft stammt aus der API.

WSADDRESSING_FROM_EPR com.ibm.websphere.wsaddressing.EndpointReference [source endpoint] Nicht definiert
WSADDRESSING_REPLYTO_EPR com.ibm.websphere.wsaddressing.EndpointReference [reply endpoint] Entweder 'none', wenn es sich um eine unidirektionale Nachricht ohne Antwort handelt, oder nicht gesetzt. Für bidirektionale asynchrone Nachrichten in JAX-WS-Anwendungen wird diese Eigenschaft automatisch generiert. Wenn Sie in dieser Situation versuchen, diese Eigenschaft zu setzen, wird eine Ausnahme vom Typ javax.xml.ws.WebServiceException ausgelöst. Für bidirektionale synchrone Nachrichten können Sie diese Eigenschaft nur setzen, wenn die Adresse der Endpunktreferenz der anonyme URI ist. Wenn die Adresse nicht der anonyme URI ist, wird eine Ausnahme vom Typ "javax.xml.ws.WebServiceException" ausgelöst.
WSADDRESSING_FAULTTO_EPR com.ibm.websphere.wsaddressing.EndpointReference [fault endpoint] Nicht definiert

Wenn Sie versuchen, diese Eigenschaft für bidirektionale asynchrone Nachrichten in JAX-WS-Anwendungen zu setzen, wird eine Ausnahme vom Typ javax.xml.ws.WebServiceException ausgelöst. Für bidirektionale synchrone Nachrichten können Sie diese Eigenschaft nur setzen, wenn die Adresse der Endpunktreferenz der anonyme URI ist. Wenn die Adresse nicht der anonyme URI ist, wird eine Ausnahme vom Typ "javax.xml.ws.WebServiceException" ausgelöst.

WSADDRESSING_RELATIONSHIP_SET java.util.Set mit Instanzen von com.ibm.wsspi.wsaddressing.Relationship [relationship] Nicht definiert
WSADDRESSING_MESSAGE_ID com.ibm.wsspi.wsaddressing.AttributedURI [message id] Generiert und mit einem eindeutigen Wert definiert.
WSADDRESSING_ACTION com.ibm.wsspi.wsaddressing.AttributedURI [action] Generiert und gemäß der WS-Addressing-Spezifikation definiert.
WSADDRESSING_OUTBOUND_NAMESPACE Zeichenfolge Ohne Der WS-Addressing-Namespace der Eigenschaft WSADDRESSING_DESTINATION_EPR, falls definiert, andernfalls der Standard-Namespace.

WS-Addressing-MAPs aus eingehenden Nachrichten abrufen

WS-Addressing-Nachrichteninformationsheader, die zur letzten eingehenden Nachricht gehören, können aus den eingehenden Eigenschaften abgerufen werden, die in der Klasse "WSAConstants" definiert sind. Die folgende Tabelle enthält eine Zusammenfassung der verfügbaren Eigenschaften. Sie übernehmen die Referenzparameter aus dem Nachrichtenkontext über die Schnittstelle "EndpointReferenceManager.getReferenceParameter".
Tabelle 2. Eingehende Eigenschaften, die aus dem Nachrichtenkontext abgerufen werden können . In der Tabelle sind die verschiedenen Eigenschaftsnamen, ihre Java-Typen und entsprechenden abstrakten WS-Addressing-MAP-Namen aufgeführt.
Eigenschaftswert im Nachrichtenkontext (Typ String) Java-Typ des Eigenschaftswerts Abstrakter WS-Addressing-MAP-Name in der Notationskonvention des W3C-XML-Informationssets
WSADDRESSING_INBOUND_TO com.ibm.wsspi.wsaddressing.AttributedURI [destination]
Keine bestimmte Eigenschaft. Rufen Sie das zugehörige MAP über die Methode EndpointReferenceManager.getReferenceParameter(QName Name) ab. Beliebiger Typ [reference parameters]*
WSADDRESSING_INBOUND_FROM_EPR com.ibm.websphere.wsaddressing.EndpointReference [source endpoint]
WSADDRESSING_INBOUND_REPLYTO_EPR com.ibm.websphere.wsaddressing.EndpointReference [reply endpoint]
WSADDRESSING_INBOUND_FAULTTO_EPR com.ibm.websphere.wsaddressing.EndpointReference [fault endpoint]
WSADDRESSING_INBOUND_RELATIONSHIP java.util.Set mit Instanzen von com.ibm.wsspi.wsaddressing.Relationship [relationship]
WSADDRESSING_INBOUND_MESSAGE_ID com.ibm.wsspi.wsaddressing.AttributedURI [message id]
WSADDRESSING_INBOUND_ACTION com.ibm.wsspi.wsaddressing.AttributedURI [action]
WSADDRESSING_INBOUND_NAMESPACE Zeichenfolge Der WS-Addressing-Namespace der eingehenden Nachricht.

Symbol, das den Typ des Artikels anzeigt. Konzeptartikel



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