Muster des Nachrichtenaustausches für WS-Addressing
In der W3C-Spezifikation Web Services Addressing (WS-Addressing) werden die wichtigsten WS-Addressing-Eigenschaften für die durch WSDL 1.0 definierten Muster des Nachrichtenaustausches explizit definiert. Diese Muster des Nachrichtenaustausches werden in diesem Artikel aufgeführt, wobei für jedes Muster die erforderlichen WS-Addressing-Eigenschaften dargestellt werden.
Unidirektionaler Nachrichtenaustausch
<operation name="myOperation">
<input message="tns:myInputMessage"/>
</operation>
Abstrakter WS-Addressing-MAP-Name in der Notationskonvention des W3C-XML-Informationssets | Beschreibung einer unidirektionalen Eingabenachricht |
---|---|
[action] | Die WS-Addressing-Aktion, die gemäß der verwendeten Version der WS-Addressing-Spezifikation generiert wird. |
[reply endpoint] | Der WS-Addressing-Antwortendpunkt, der anzeigt, dass keine Antworten auf diese Eingabenachrichten erwartet werden. Der Wert dieser Nachrichtenadressierungseigenschaft (MAP, Message-Addressing Property) ist abhängig von der verwendeten Version der WS-Addressing-Spezifikation. |
[message id] | Eine eindeutige, generierte Nachrichten-ID. Obwohl dieser Wert durch die Spezifikation nicht vorgegeben wird, wird er von der Laufzeit von WebSphere Application Server automatisch festgelegt. |
Obwohl die WSDL-Operation für diesen Nachrichtenaustausch keine Antworten spezifiziert, können zugehörige Nachrichten als Teil eines anderen Nachrichtenaustausches gesendet werden. Insbesondere können Anwendungen die WS-Addressing-MAPs [reply endpoint] (Antwortendpunkt) und [fault endpoint] (Fehlerendpunkt) verwenden, um dem Ziel der unidirektionalen Nachricht mitzuteilen, wohin zugehörige Nachrichten gesendet werden sollten. Zur Weitergabe eines Antwortendpunkts oder eines Fehlerendpunkts ordnen Sie dem Anforderungskontext des JAX-WS-Objekts "BindingProvider" oder dem JAX-RPC-Stub- oder -Aufrufobjekt die geeignete Eigenschaft zu, um die Standardwerte zu überschreiben (siehe hierzu den Artikel Eigenschaften für die Nachrichtenadressierung mit den IBM proprietären Web-Services-Addressing-SPIs angeben und abrufen).
Bidirektionale Anforderungs-Antwort-Operation
<operation name="myOperation">
<input message="tns:myInputMessage"/>
<output message="tns:myOutputMessage"/>
<fault="tns:myFaultMessage"/>
</operation>
<operation name="myOperation">
<input message="tns:myInputMessage"/>
<output message="tns:myOutputMessage"/>
</operation>
<operation name="myOperation">
<input message="tns:myInputMessage"/>
<fault="tns:myFaultMessage"/>
</operation>
Abstrakter WS-Addressing-MAP-Name in der Notationskonvention des W3C-XML-Informationssets | Beschreibung der Eingabenachricht einer Anforderungs-Antwort-Operation |
---|---|
[action] | Die WS-Addressing-Aktion, die gemäß der verwendeten Version der WS-Addressing-Spezifikation generiert wird. |
[message id] | Eine eindeutige, generierte Nachrichten-ID. |
Abstrakter WS-Addressing-MAP-Name in der Notationskonvention des W3C-XML-Informationssets | Beschreibung der Eingabenachricht einer Anforderungs-Antwort-Operation |
---|---|
[action] | Die WS-Addressing-Aktion, die gemäß der verwendeten Version der WS-Addressing-Spezifikation generiert wird. |
[relationship] | Ein Beziehungssatz, der eine Antwortbeziehung zu der in der Anforderungsnachricht übergebenen Nachrichten-ID enthält. |
[message id] | Eine eindeutige, generierte Nachrichten-ID. Obwohl sie durch die Spezifikation nicht vorgegeben wird, wird sie von der Laufzeit des Anwendungsservers automatisch erstellt. |
Synchrone Anforderungs-Antwort-Operation

Wenn Sie für synchrone JAX-WS-Aufrufe den Antwortendpunkt oder den Fehlerendpunkt setzen, muss die von Ihnen definierte Endpunktreferenz den anonymen URI verwenden. Wenn die Endpunktreferenz den anonymen URI nicht verwendet, wird eine Ausnahme vom Typ "javax.xml.ws.WebServiceException" ausgelöst. Obwohl die Endpunktreferenz den anonymen URI verwendet, können Sie in der Endpunktreferenz Referenzparameter verwenden, um den Antwort- oder Fehlerendpunkt zu bestimmen.
- Web Services Security (WS-Security) ist nicht aktiviert, oder Sie haben kein Assembliertool verwendet, um festzulegen, dass die Elemente "ReplyTo" und "FaultTo" der SOAP-Nachricht signiert werden müssen. In dieser Situation kann ein JAX-WS-Endpunkt dazu verwendet werden, Nachrichten an einen Dritten zu senden und potenziell an einer Denial-of-Service-Attacke beteiligt zu sein. Zur Vermeidung solcher Attacken müssen Sie das asynchrone Nachrichtenaustauschmuster festlegen, und WS-Policy aktivieren, damit die Clients diese Anforderung erkennen können.
- Ein JAX-WS-Client kommuniziert über eine NAT-Einheit. Die URIs in den Elementen "ReplyTo" und "FaultTo" der SOAP-Nachricht können nicht an eine solche Einheit weitergeleitet werden. In dieser Situation muss der Client den in der Spezifikation WS-Addressing definierten anonymen URI und ein synchrones Nachrichtenaustauschmuster verwenden. Damit sichergestellt ist, dass der Client diese Anforderungen auch dann erfüllt, wenn der Server über WS-Policy einen nicht anonymen URI im Element "ReplyTo" anfordert, müssen Sie auf dem Client das synchrone Nachritenaustauschmuster angeben.
Asynchrone Anforderungs-Antwort-Operation
Das JAX-RPC 1.0-Programmiermodell erlaubt keine asynchronen Antworten oder Fehler für eine bidirektionale Anforderungs-Antwort-Operation.

![[Windows]](../images/windows.gif)
- Sie können einen Richtliniensatz für WS-Addressing anwenden und konfigurieren. Lesen Sie hierzu den Artikel WS-Addressing-Richtlinie konfigurieren.
- Sie können die Eigenschaft com.ibm.websphere.webservices.use.async.mep im Clientanforderungskontext setzen. Lesen Sie hierzu den Artikel JAX-WS-Web-Services asynchron aufrufen.
- Sie können Implementierungsdeskriptorelemente, Annotationen vom Typ @Addressing oder Adressierungsfeatures verwenden oder WS-Policy-Zusicherungen zum WSDL-Dokument hinzufügen. Lesen Sie hierzu den Artikel WS-Addressing-Unterstützung für JAX-WS-Anwendungen aktivieren und die zugehörigen untergeordneten Artikel.
- Die gemeinsame WS-Policy-Nutzung ist aktiviert.
- Die gemeinsame WS-Policy-Nutzung ist nicht aktiviert, aber Folgendes gilt:
- Das (mit einer Anforderung HTTP GET abgerufene) WSDL-Paket enthält die relevanten Richtlinieninformationen.
- Im Code wurden @Addressing-Annotationen verwendet. In diesem Fall generiert die Serverlaufzeit ein WSDL-Dokument mit den WS-Policy-Zuordnungen.