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 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.
- 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

WS-Addressing-MAPs in abgehenden Nachrichten festlegen
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 |
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
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. |