WS-Addressing-Annotationen

Die Spezifikation "WS-Addressing" (Web Services Addressing) stellt transportneutrale Mechanismen für die Adressierung von Web-Services und die Vereinfachung der End-to-End-Adressierung bereit. Wenn Sie eine JAX-WS-Anwendung haben, können Sie Java-Annotationen in Ihrem Code verwenden, um das WS-Addressing-Verhalten zur Laufzeit festzulegen.

Verwenden Sie WS-Addressing-Informationen zum Aktivieren der WS-Addressing-Unterstützung, um anzugeben, ob WS-Addressing-Informationen in eingehenden Nachrichten erforderlich sind, und um Aktionen anzugeben, die einer Web-Service-Operation oder einer Fehlerantwort zugeordnet werden sollen.

Die folgenden WS-Addressing-Annotationen werden in WebSphere Application Server unterstützt. Diese Annotationen sind, sofern nicht anders angegeben, in der Spezifikation JAX-WS 2.2 definiert. Die Spezifikation JAX-WS 2.2 beinhaltet die Funktionen der Spezifikation JAX-WS 2.1 und übertrifft diese. Ausführliche Informationen hierzu finden Sie auf der Webseite der Spezifikation Java API for XML-Based Web Services 2.2.
javax.xml.ws.Action
Gibt die Aktion an, die einer Web-Service-Operation zugeordnet werden soll.
  • Wenn Sie bei der Entwicklung von JAX-WS-Web-Services einen Bottom-up-Ansatz verfolgen, können Sie mit dem Befehlszeilentool wsgen ein WSDL-Dokument aus Java-Anwendungscode generieren. Damit dieses Attribut der WSDL-Operation hinzugefügt wird, müssen Sie auch die Annotation "@Addressing" in der Implementierungsklasse angeben. Das Ergebnis im generierten WSDL-Dokument ist, dass die Action-Annotationen das Attribut wsam:Action in den Elementen input message und output message des Konstrukts wsdl:operation haben. Wenn Sie die Annotation "@Addressing" nicht verwenden möchten, können Sie Ihr eigenes WSDL-Dokument mit dem bereits definierten Attribut "Action" bereitstellen.
  • Wenn Sie bei der Entwicklung von JAX-WS-Web-Services einen Top-down-Ansatz verfolgen, können Sie mit dem Befehlszeilentool wsimport Java-Anwendungscode aus einem vorhandenen WSDL-Dokument generieren. In solchen Fällen enthält der generierte Java-Code die richtigen Action- und FaultAction-Annotationen.
Wenn diese Aktion nicht in Codeannotationen oder im WSDL-Dokument angegeben ist, wird das Standardaktionsmuster laut Definition in der Spezifikation Web Services Addressing 1.0 Metadata verwendet. Ausführliche Informationen hierzu finden Sie in dieser Spezifikation.
Anmerkung: Die Laufzeitumgebung von WebSphere Application Server unterstützt zwar das veraltete Attribut wsaw:Action, doch wenn Sie versuchen, Java-Code aus einem alten WSDL-Dokument zu generieren, das dieses veraltete Attribut enthält, wird das Attribut ignoriert.
javax.xml.ws.FaultAction
Gibt die Aktion an, die der Fehlerantwort hinzugefügt wird. Wenn Sie diese Annotation mit einer bestimmten Methode verwenden, wird dem Element "fault" der WSDL-Operation, die dieser Methode entspricht, das WS-Addressing-Erweiterungsattribut "FaultAction" hinzugefügt. Damit dieses Attribut der WSDL-Operation hinzugefügt wird, müssen Sie auch die Annotation "Addressing" in der Implementierungsklasse angeben. Wenn Sie die Annotation "Addressing" nicht verwenden möchten, können Sie ein eigenes WSDL-Dokument bereitstellen, in dem das Attribut "Action" bereits definiert ist. Diese Annotation muss in einer Annotation "Action" enthalten sein.
WSDL-Dokumente, die aus Java-Anwendungscode generiert werden, der die Annotation "WS-Addressing FaultAction" enthält, haben das Attribut wsam:Action im Element fault message des Konstrukts wsdl:operation.
Anmerkung: Um sicherzustellen, dass alle angepassten Exception-Klassen, die Sie schreiben, dem generierten WSDL-Dokument erfolgreich zugeordnet werden, müssen Sie die Klasse java.lang.Exception erweitern und nicht die Klasse java.lang.RuntimeException.
javax.xml.ws.soap.Addressing
Gibt an, dass dieser Service die WS-Addressing-Unterstützung aktivieren soll. Sie können diese Annotation nur in der Serviceimplementierungs-Bean verwenden. In der Serviceendpunktschnittstelle ist diese Annotation nicht verwendbar.
com.ibm.websphere.wsaddressing.jaxws21.SubmissionAddressing
Diese Annotation ist Teil der IBM Implementierung der Spezifikation JAX-WS 2.1. Diese Annotation gibt an, dass der Service die WS-Addressing-Unterstützung für die WS-Addressing-Spezifikation von 2004/08 verwenden soll. Sie können diese Annotation nur in der Serviceimplementierungs-Bean verwenden. In der Serviceendpunktschnittstelle ist diese Annotation nicht verwendbar.

Weitere Informationen zu den Annotationen "Addressing" und "SubmissionAddressing" einschließlich Codebeispielen finden Sie im Artikel Web-Services-Addressing-Unterstützung für JAX-WS-Anwendungen mit Addressing-Annotationen aktivieren.

Im folgenden Beispielcode wird die Annotation "Action" verwendet, um die aufzurufende Aufrufoperation (input) und die Aktion zu definieren, die der Antwortnachricht hinzugefügt wird (output). Außerdem wird in dem Beispiel die Annotation "FaultAction" verwendet, um die Aktion anzugeben, die der Antwortnachricht hinzugefügt wird, wenn ein Fehler auftritt:
@WebService(name = "Calculator")
public interface Calculator {
   ...
  	 @Action(
      input="http://calculator.com/inputAction",
      output="http://calculator.com/outputAction",
      fault = { @FaultAction(className=AddNumbersException.class, 
                value="http://calculator.com/faultAction") 
      }
   )
   public int add(int value1, int value2) throws AddNumbersException {
      return value1 + value2;
   }
}
Wenn Sie ein Tool für die Generierung von Serviceartefakten aus Code verwenden, sind die WSDL-Tags, die aus dem vorherigen Beispiel generiert werden, folgende:
<definitions targetNamespace="http://example.com/numbers" ...>
   ...
   <portType name="AddPortType">
      <operation name="Add">
         <input message="tns:AddInput" name="Parameters"
                         wsam:Action="http://calculator.com/inputAction"/>
         <output message="tns:AddOutput" name="Result"
           	               	               wsam:Action="http://calculator.com/outputAction"/>
         <fault message="tns:AddNumbersException" name="AddNumbersException"
           	              	              wsam:Action="http://calculator.com/faultAction"/>
      </operation>
    <portType>
    ...
<definitions>

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_annots
Dateiname:cwbs_wsa_annots.html