WS-Addressing-Unterstützung für JAX-WS-Anwendungen aktivieren
Die WS-Addressing-Unterstützung (Web Services Addressing) stellt Mechanismen für die Adressierung von Web-Services und die Bereitstellung von Adressierungsinformationen in Nachrichten bereit. Für JAX-WS-Anwendungen können Sie die WS-Addressing-Unterstützung auf verschiedene Arten aktivieren, z. B. durch Konfiguration von Richtliniensätzen oder Verwendung von Annotationen in Code.
Informationen zu diesem Vorgang
Führen Sie diese Task aus, um die WS-Addressing-Unterstützung als Service-Provider oder als Client eines Service, der von einer anderen Partei bereitgestellt wird, zu aktivieren.
- Sie können das Verhalten der WS-Addressing-Unterstützung nach der Implementierung der Anwendung ändern, indem Sie der Anwendung einen Richtliniensatz zuordnen. In diesem Richtliniensatz können Sie den Typ der WS-Addressing-Richtlinie konfigurieren, um festzulegen, ob WS-Addressing-Informationen in eingehenden Nachrichten erforderlich sind und ob synchrones oder asynchrones Messaging verwendet werden soll. Sie können die WS-Addressing-Richtlinienkonfiguration anderen Servern und Clients mitteilen, die WS-Policy unterstützen, indem Sie die gemeinsame Nutzung von Richtlinien im Server aktivieren und die Providerrichtlinie im Client anwenden. Diese Methode setzt andere Methoden außer Kraft.
- Verwenden Sie Implementierungsdeskriptorelemente in einem Element port-component.
- Sie können das Verhalten der WS-Addressing-Unterstützung während der Entwicklung des Service ändern, indem Sie die Annotation Addressing oder SubmissionAddressing im Service-Code verwenden. In jeder Annotation können Sie angeben, ob WS-Addressing auf dem Server aktiviert ist, ob der Server WS-Addressing-Informationen in eingehenden Nachrichten erfordert. Ferner können Sie das Nachrichtenaustauschmuster angeben, das der Server verwenden soll. Wenn die Annotation Addressing im Code vorhanden ist, wird auch jedem WSDL-Dokument, das für den Service generiert wird, ein Element UsingAddressing und eine WS-Policy-Zusicherung hinzugefügt.
- Sie können das Verhalten der WS-Addressing-Unterstützung während der Entwicklung des Service ändern, indem Sie UsingAddressing-Elemente oder WS-Policy-Zusicherungen zum WSDL-Dokument hinzufügen. Wenn Sie ein eigenes WSDL-Dokument bereitstellen, anstatt sich darauf zu verlassen, dass die JAX-WS-Laufzeitumgebung ein solches Dokument generiert, und Ihr WSDL-Dokument von Clients, die keine JAX-WS-2.2-Clients sind, konsumiert wird, müssen Sie das Element UsingAddressing einfügen, weil diese Clients keine WS-Policy-Zusicherungen verarbeiten.
- Ordnen Sie dem Clientartefakt einen Richtliniensatz zu, und führen Sie eine der folgenden Aktionen aus:
- Geben Sie in der Richtlinie an, dass WS-Addressing verbindlich ist.
- Wenden Sie Client- und Providerrichtlinien an. In dieser Situation wird die WS-Addressing-Unterstützung nur dann im Client aktiviert, wenn die gemeinsame Nutzung von Richtlinien im Service-Provider aktiviert und wenn in der Richtlinienkonfiguration des Providers angegeben ist, dass WS-Addressing verbindlich ist.
- Setzen Sie die Eigenschaft com.ibm.websphere.webservices.use.async.mep im Clientanforderungskontext.
- Verwenden Sie die IBM proprietäre WS-Addressing-SPI, um dem Nachrichtenanforderungskontext Eigenschaften für die Nachrichtenadressierung hinzuzufügen.
- Verwenden Sie Implementierungsdeskriptorelemente in einem Element port-component-ref.
- Verwenden Sie die Annotation "Addressing" in Kombination mit der Annotation "WebServiceRef" im Clientcode (bei der Verwendung einer injizierten Web-Service-Proxy-Referenz).
- Verwenden Sie die Adressierungsfeatures im Clientcode. Eigenschaften, die mit dieser Methode definiert werden, überschreiben die Einstellungen, die im WSDL-Dokument für den Service definiert sind.
- Verwenden WS-Policy-Zusicherungen im WSDL-Dokument, um die Unterstützung für WS-Addressing anzugeben. Wenn Sie Addressing-Annotationen zu Ihrem Clientanwendungscode hinzufügen möchten, enthält das generierte WSDL-Dokument WS-Policy-Zusicherungen.
- Geben Sie das Element UsingAddressing im WSDL-Dokument für den Service an. Wenn der Service die Annotation Addressing verwendet und Sie das WSDL-Dokument aus dem Code generieren, ist das Element UsingAddressing bereits vorhanden.
In der folgenden Tabelle ist das Verhalten der WS-Addressing-Unterstützung zusammengefasst. Verwenden Sie die folgende Tabelle, um zu bestimmen, ob eine Anforderungsnachricht für Clienteinstellungen akzeptiert wird, die keine Richtlinienkonfiguration enthalten.
Clienteinstellungen | Providerrichtlinieneinstellungen | Provider-WSDL-Einstellungen (UsingAddressing-Attribut required) | ||||||
---|---|---|---|---|---|---|---|---|
WS-Addressing ist optional | WS-Addressing ist verbindlich1 | |||||||
Synchron und asynchron | Nur synchron | Nur asynchron | Synchron und asynchron | Nur synchron | Nur asynchron | false (WS-Addressing ist optional) | true (WS-Addressing ist verbindlich1) | |
WS-Addressing-Unterstützung aktiviert und Messaging-Stil synchron | Nachricht akzeptiert | Nachricht akzeptiert | Fehler | Nachricht akzeptiert | Nachricht akzeptiert | Fehler | Nachricht akzeptiert | Nachricht akzeptiert |
WS-Addressing-Unterstützung aktiviert und Messaging-Stil asynchron | Nachricht akzeptiert | Fehler | Nachricht akzeptiert | Nachricht akzeptiert | Fehler | Nachricht akzeptiert | Nachricht akzeptiert | Nachricht akzeptiert |
WS-Addressing-Unterstützung nicht aktiviert und Messaging-Stil synchron | Nachricht akzeptiert | Nachricht akzeptiert | Nachricht akzeptiert2 | Fehler | Fehler | Fehler | Nachricht akzeptiert | Fehler |
WS-Addressing-Unterstützung nicht aktiviert und Messaging-Stil asynchron3 | Fehler | Fehler | Fehler | Fehler | Fehler | Fehler | Fehler | Fehler |
- Wenn WS-Addressing verbindlich ist, werden alle Anforderungen ohne WS-Addressing-Header zurückgewiesen.
- Der Messaging-Stil wird nur umgesetzt, wenn WS-Addressing-Header in der Anforderung vorhanden sind.
- Asynchrones Messaging ist ohne WS-Addressing-Header nicht möglich.
Verwenden Sie die folgende Tabelle, um zu bestimmen, ob eine Anforderungsnachricht akzeptiert wird, wenn Client und Provider eine WS-Addressing-Richtlinienkonfiguration haben, im Client Provider- und Clientrichtlinien angewendet werden und die gemeinsame Nutzung von Richtlinien im Server aktiviert ist.
Clientrichtlinieneinstellungen | Providerrichtlinieneinstellungen | |||||
---|---|---|---|---|---|---|
WS-Addressing ist optional | WS-Addressing ist verbindlich | |||||
Synchron und asynchron | Nur synchron | Nur asynchron | Synchron und asynchron | Nur synchron | Nur asynchron | |
WS-Addressing optional und Messaging-Stil synchron und asynchron | Nachricht akzeptiert | Nachricht akzeptiert | Nachricht akzeptiert | Nachricht akzeptiert | Nachricht akzeptiert | Nachricht akzeptiert |
WS-Addressing optional und Messaging-Stil nur synchron | Nachricht akzeptiert | Nachricht akzeptiert | Nachricht akzeptiert1 | Nachricht akzeptiert | Nachricht akzeptiert | Fehler |
WS-Addressing optional und Messaging-Stil nur asynchron2 | Fehler | Fehler | Fehler | Nachricht akzeptiert | Fehler | Nachricht akzeptiert |
WS-Addressing verbindlich und Messaging-Stil synchron und asynchron | Nachricht akzeptiert | Nachricht akzeptiert | Nachricht akzeptiert | Nachricht akzeptiert | Nachricht akzeptiert | Nachricht akzeptiert |
WS-Addressing verbindlich und Messaging-Stil nur synchron | Nachricht akzeptiert | Nachricht akzeptiert | Fehler | Nachricht akzeptiert | Nachricht akzeptiert | Fehler |
WS-Addressing verbindlich und Messaging-Stil nur asynchron | Nachricht akzeptiert | Fehler | Nachricht akzeptiert | Nachricht akzeptiert | Fehler | Nachricht akzeptiert |
- Der Messaging-Stil wird nur umgesetzt, wenn WS-Addressing-Header in der Anforderung vorhanden sind.
- Asynchrones Messaging ist ohne WS-Addressing-Header nicht möglich.
Vorgehensweise
- Wenn Sie das Verhalten der WS-Addressing-Unterstützung durch Erstellen oder Ändern von Richtliniensätzen im Service-Provider oder -client ändern möchten, lesen Sie den Artikel Web-Services-Addressing-Unterstützung für JAX-WS-Anwendungen mit Richtliniensätzen aktivieren.
- Setzen Sie die Eigenschaft com.ibm.websphere.webservices.use.async.mep im Clientanforderungskontext, wenn Sie Clients von WebSphere Application Server zum Aktivieren der WS-Addressing-Unterstützung verwenden. Weitere Informationen finden Sie im Artikel JAX-WS-Web-Services asynchron aufrufen.
- Wenn Sie das Verhalten der WS-Addressing-Unterstützung durch Verwendung des Implementierungsdeskriptors der Service- oder Clientanwendung ändern möchten, lesen Sie den Artikel Web-Services-Addressing-Unterstützung für JAX-WS-Anwendungen mit Implementierungsdeskriptoren aktivieren.
- Wenn Sie das Verhalten der WS-Addressing-Unterstützung über das Programm durch Verwendung von Addressing-Annotationen in der Serviceanwendung oder im Client mit einer injizierten Web-Service-Proxy-Referenz ändern möchten, lesen Sie den Artikel Web-Services-Addressing-Unterstützung für JAX-WS-Anwendungen mit Addressing-Annotationen aktivieren.
- Wenn Sie die WS-Addressing-Unterstützung über das Programm im Client durch Erstellen einer Instanz einer Addressing-Featureklasse aktivieren möchten, lesen Sie den Artikel Web-Services-Addressing-Unterstützung für JAX-WS-Anwendungen mit Adressierungsfeatures.
- Wenn Sie das Verhalten der WS-Addressing-Unterstützung während der Entwicklung einer Client- oder Serviceanwendung ändern möchten, indem Sie WS-Policy-Zusicherungen hinzufügen, lesen Sie den Artikel Web-Services-Addressing-Unterstützung für JAX-WS-Anwendungen mit WS-Policy aktivieren.
Ergebnisse
Es werden jetzt WS-Addressing-Eigenschaften in den SOAP-Nachrichtenheader eingeschlossen und vom Server beim Empfang der Nachricht verarbeitet.