JAX-WS-Annotationen
Java™ API for XML-Based Web Services (JAX-WS) stützt sich auf die Verwendung von Annotationen, um Metadaten für Web-Service-Implementierungen anzugeben und die Entwicklung von Web-Services zu vereinfachen. Annotationen beschreiben, wie auf eine serverseitige Serviceimplementierung als Web-Service zugegriffen wird und wie eine clientseitige Java-Klasse auf Web-Services zugreift.
Der Programmierstandard JAX-WS unterstützt die Annotation von Java-Klassen mit Metadaten, die verwendet werden, um eine Serviceendpunktanwendung als Web-Service zu definieren und zu beschreiben, wie ein Client auf den Web-Service zugreifen kann. JAX-WS unterstützt die Verwendung von Annotationen, basierend auf der Spezifikation Metadata Facility for the Java Programming Language (Java Specification Request (JSR) 175), der Spezifikation Web Services Metadata for the Java Platform (JSR 181) und den von der Spezifikation JAX-WS 2.0 (JSR 224) definierten Annotationen, zu denen die JAXB-Annotationen gehören. Wenn Sie die Annotationen aus dem Standard JSR 181 verwenden, können Sie die Serviceimplementierungsklasse bzw. die Serviceschnittstelle einfach annotieren und damit die Anwendung als Web-Service aktivieren. Die Verwendung von Annotationen in der Java-Quelle vereinfacht die Entwicklung von Web-Services, indem einige zusätzliche Informationen definiert werden, die gewöhnlich aus den Implementierungsdeskriptordateien, WSDL-Dateien oder Zuordnungsmetadaten aus XML- und WSDL-Dateien in die Quellenartefakte abgerufen werden.
Verwenden Sie Annotationen, um Bindungen und Handlerketten und Gruppennamen für die Parameter "portType" und "Service" sowie für andere WSDL-Parameter festzulegen. Annotationen werden für die Zuordnung von Java zu WSDL und Schemata und darüber hinaus zur Laufzeit verwendet, um zu steuern, wie die JAX-WS-Laufzeit Web-Service-Aufrufe verarbeitet und beantwortet.
Für JAX-WS-Web-Services ist die Verwendung des Implementierungsdeskriptors webservices.xml optional, weil Sie Annotationen verwenden können, um alle Informationen anzugeben, die in der Implementierungsdeskriptordatei enthalten sind. Sie können die Implementierungsdeskriptordatei verwenden, um vorhandene JAX-WS-Annotationen zu erweitern oder zu überschreiben. Alle Informationen, die Sie im Implementierungsdeskriptor webservices.xml definieren, überschreiben die entsprechenden Informationen, die in Annotationen angegeben sind.
Ab WebSphere Application Server Version 7.0 werden Java-EE-5-Anwendungsmodule (Webanwendungsmodule der Version 2.5 oder höher oder EJB-Module der Version 3.0 oder höher) nach Annotationen durchsucht, um JAX-WS-Services und -Clients zu identifizieren. Anwendungsmodule vor Java EE 5 (Webanwendungsmodule der Version 2.4 oder früher oder EJB-Module der Version 2.1 oder früher) werden aus Leistungsgründen standardmäßig nicht nach JAX-WS-Annotationen durchsucht.
- Sie können die Eigenschaft UseWSFEP61ScanPolicy in der Datei
META-INF/MANIFEST.MF einer WAR-Datei oder eines EJB-Moduls auf true setzen.
Beispiel:
Wenn diese Eigenschaft in der Datei META-INF/MANIFEST.MF des Moduls auf true gesetzt wird, wird das Modul auf JAX-WS-Anmerkungen durchsucht, unabhängig von der Java-EE-Version des Moduls. Der Standardwert ist false, und wenn er aktiv ist, werden JAX-WS-Annotationen nur in Modulen der Version Java EE 5 oder höher unterstützt.Manifest-Version: 1.0 UseWSFEP61ScanPolicy: true
- Sie können die angepasste JVM-Eigenschaft (Java Virtual Machine) com.ibm.websphere.webservices.UseWSFEP61ScanPolicy mit der Administrationskonsole definieren. Informationen zum richtigen Navigationspfad finden Sie in der Dokumentation zu den angepassten JVM-Eigenschaften. Wenn die Annotationen unabhängig von der Java-EE-Version in allen Modulen durchsucht werden sollen, setzen Sie die angepasste Eigenschaft com.ibm.websphere.webservices.UseWSFEP61ScanPolicy auf true. Sie müssen die Einstellung auf jedem Server ändern, der eine Änderung im Standardverhalten erfordert.
![[z/OS]](../images/ngzos.gif)


- Typen, wie z. B. Java-Klasse, Aufzählung oder Schnittstelle
- Methoden,
- Felder, die lokale Instanzvariablen in einer Java-Klasse darstellen,
- Parameter in einer Java-Methode.
Annotationsklasse | Annotation | Eigenschaften |
---|---|---|
javax.jws. WebService | Die Annotation @WebService kennzeichnet eine Java-Klasse, die einen Web-Service implementiert,
bzw. eine Serviceendpunktschnittstelle,
die eine Web-Service-Schnittstelle implementiert.
Wichtig:
|
|
javax.jws. WebMethod | Die Annotation @WebMethod bezeichnet eine Methode in einer Web-Service-Operation.
Wenden Sie diese Annotation auf Methoden in der Serviceendpunktschnittstelle eines Clients oder Servers bzw. der Implementierungsklasse eines Serverendpunkts an. |
|
javax.jws. Oneway | Die Annotation @Oneway bezeichnet eine Methode als unidirektionale Operation eines Web-Service,
die nur eine Eingabenachricht, aber keine Ausgabenachricht hat.
Wenden Sie diese Annotation auf Methoden in der Serviceendpunktschnittstelle eines Clients oder Servers bzw. der Implementierungsklasse eines Serverendpunkts an. |
|
javax.jws. WebParam | Die Annotation @WebParam passt die Zuordnung eines einzelnen Parameters
zu einem Web-Service-Nachrichtenabschnitt und einem XML-Element an.
Wenden Sie diese Annotation auf Methoden in der Serviceendpunktschnittstelle eines Clients oder Servers bzw. der Implementierungsklasse eines Serverendpunkts an. |
|
javax.jws. WebResult | Die Annotation @WebResult passt die Zuordnung eines Rückgabewerts
zu einem WSDL-Abschnitt oder einem XML-Element an. Wenden Sie diese Annotation auf Methoden in der Serviceendpunktschnittstelle eines Clients oder Servers bzw. der Implementierungsklasse eines Serverendpunkts an. |
|
javax.jws. HandlerChain | Die Annotation @HandlerChain ordnet den Web-Service einer extern definierten Handlerkette zu.
Sie können den serverseitigen Handler nur mit der Annotation @HandlerChain in der Serviceendpunktschnittstelle oder in der Implementierungsklasse des Serverendpunkts konfigurieren. Verwenden Sie eine der diversen Methoden, um einen clientseitigen Handler zu konfigurieren. Sie können einen clientseitigen Handler mit der Annotation @HandlerChain in der generierten Serviceklasse bzw. in der Serviceendpunktschnittstelle konfigurieren. Außerdem können Sie die eigene Implementierung der Schnittstelle "HandlerResolver" über das Programm im Service registrieren oder die Handlerkette über das Programm im Binding-Objekt festlegen. |
|
javax.jws. SOAPBinding | Die Annotation @SOAPBinding gibt die Zuordnung des Web-Service zum
SOAP-Nachrichtenprotokoll an. Wenden Sie diese Annotation auf Methoden in der Serviceendpunktschnittstelle eines Clients oder Servers bzw. der Implementierungsklasse eines Serverendpunkts an. Die Annotation auf Methodenebene ist in Bezug darauf, was angegeben werden kann, beschränkt und wird nur verwendet, wenn die Eigenschaft style den Wert DOCUMENT hat. Wenn keine Annotation auf Methodenebene angegeben ist, wird das @SOAPBinding-Verhalten aus dem Typ verwendet. |
|
Annotationsklasse | Annotation | Eigenschaften |
---|---|---|
javax.xml.ws. Action | Die Annotation @Action gibt die WS-Addressing-Aktion an, die einer Web-Service-Operation zugeordnet ist. Wenn Sie diese Annotation mit einer bestimmten Methode verwenden und das entsprechende WSDL-Dokument generieren, wird das Erweiterungsattribut "WS-Addressing Action" zu den Ein- und Ausgabeelementen der WSDL-Operation, die dieser Methode entspricht, hinzugefügt. Um dieses Attribut zur WSDL-Operation hinzuzufügen, müssen Sie auch die Annotation @Addressing in der Implementierungsklasse des Serverendpunkts angeben. Wenn Sie die Annotation @Addressing nicht verwenden möchten, können Sie Ihr eigenes WSDL-Dokument mit dem bereits definierten Attribut "Action" bereitstellen. |
|
javax.xml.ws. BindingType | Die Annotation @BindingType gibt die Bindung an, die beim Veröffentlichen eines Endpunkts dieses Typs verwendet werden soll.
Wenden Sie diese Annotation auf die Implementierungsklasse eines Serverendpunkts an. Wichtig: Sie können die Annotation @BindingType in der Implementierungsklasse des JavaBeans-Endpunkts verwenden, um
MTOM durch Angabe von javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_MTOM_BINDING oder javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_MTOM_BINDING als Wert für die Annotation anzugeben.
|
|
javax.xml.ws. FaultAction | Die Annotation @FaultAction gibt die WS-Addressing-Aktion an, die einer Standardantwort zugeordnet ist. Diese Annotation muss in einer Annotation @Action enthalten sein. Wenn Sie diese Annotation mit einer bestimmten Methode verwenden, wird das Erweiterungsattribut "WS-Addressing FaultAction" zum Standardelement der WSDL-Operation, die dieser Methode entspricht, hinzugefügt. Um dieses Attribut zur WSDL-Operation hinzuzufügen, müssen Sie auch die Annotation @Addressing in der Implementierungsklasse des Serverendpunkts angeben. Wenn Sie die Annotation @Addressing nicht verwenden möchten, können Sie Ihr eigenes WSDL-Dokument mit dem bereits definierten Attribut "Action" bereitstellen. |
|
javax.xml.ws. RequestWrapper | Die Annotation @RequestWrapper gibt die Wrapper-Bean für die von JAXB generierten Anforderungen, den Elementnamen und den Namespace
für die Serialisierung und Entserialisierung mit der Anforderungs-Wrapper-Bean an, die zur Laufzeit verwendet werden.
Wenn Sie mit einem Java-Objekt beginnen, wird dieses Element verwendet, um im Modus "document/literal" auftretende Konflikte zu lösen. In diesem Fall ist nur das Attribut className erforderlich. Wenden Sie diese Annotation auf Methoden in der Serviceendpunktschnittstelle eines Clients oder Servers bzw. der Implementierungsklasse eines Serverendpunkts an. |
|
javax.xml.ws. ResponseWrapper | Die Annotation @ResponseWrapper gibt die Wrapper-Bean für die von JAXB generierten Antworten, den Elementnamen und den Namespace
für die Serialisierung und Entserialisierung mit der Antwort-Wrapper-Bean an, die zur Laufzeit verwendet werden.
Wenn Sie mit einem Java-Objekt beginnen, wird dieses Element verwendet, um im Modus "document/literal" auftretende Konflikte zu lösen. In diesem Fall ist nur das Attribut className erforderlich. Wenden Sie diese Annotation auf Methoden in der Serviceendpunktschnittstelle eines Clients oder Servers bzw. der Implementierungsklasse eines Serverendpunkts an. |
|
javax.xml.ws. RespectBinding | Die Annotation @RespectBinding gibt an,
ob die JAX-WS-Implementierung den Inhalt des Elements wsdl:binding für einen Endpunkt verwenden muss. Wenn diese Annotation angegeben wird, wird eine Prüfung durchgeführt, um sicherzustellen, dass alle erforderlichen WSDL-Erweiterungselemente mit dem aktivierten Attribut (Einstellung true) unterstützt werden. Wenden Sie diese Annotation auf Methoden in der Implementierungsklasse eines Serverendpunkts an. |
|
javax.xml.ws. ServiceMode | Die Annotation @ServiceMode gibt an, ob ein Service-Provider Zugriff auf eine vollständige Protokollnachricht
oder nur auf die Nutzdaten der Nachricht haben muss.
Wichtig: Die Annotation @ServiceMode wird nur für Klassen unterstützt, die mit der Annotation @WebServiceProvider
annotiert sind.
|
|
javax.xml.ws. soap.Addressing | Die Annotation @Addressing gibt an, dass dieser Service die WS-Addressing-Unterstützung aktivieren soll. Wenden Sie diese Annotation auf Methoden in der Implementierungsklasse eines Serverendpunkts an. |
|
javax.xml.ws. soap.MTOM | Die Anntotation @MTOM gibt an, ob binärer Inhalt im Hauptteil einer SOAP-Nachricht mit MTOM gesendet werden soll. Wenden Sie diese Annotation auf die Implementierungsklasse eines Serverendpunkts an. |
|
javax.xml.ws. WebFault | Die Annotation @WebFault ordnet WSDL-Fehler Java-Ausnahmen zu.
Sie wird verwendet, um den Namen des Fehlers während der Serialisierung des JAXB-Typs zu erfassen, der aus einem globalen Element generiert wird, auf den eine WSDL-Fehlernachricht verweist.
Sie kann auch verwendet werden, um die Zuordnung servicespezifischer Ausnahmen zu WSDL-Fehlern anzupassen.
Diese Annotation kann nur auf eine Fehlerimplementierungsklasse im Client oder Server angewendet werden. |
|
javax.xml.ws. WebServiceProvider | Die Annotation @WebServiceProvider gibt an, dass eine Klasse die Anforderungen
für die Implementierungsklasse eines JAX-WS-Providers erfüllt. Wichtig:
|
|
javax.xml.ws. WebServiceRef | Die Annotation @WebServiceRef definiert eine Referenz auf einen Web-Service, der vom Client aufgerufen wird. Anmerkung:
|
|
javax.xml.ws. WebServiceRefs | Die Annotation @WebServiceRefs ordnet mehrere
@WebServiceRef-Annotationen einer bestimmten Klasse zu. Anmerkung: Die Annotation @WebServiceRef wird nur in bestimmten Klassentypen unterstützt. Beispiele sind Implementierungsklassen
von JAX-WS-Endpunkten, JAX-WS-Handlerklassen, Enterprise-JavaBeans-Klassen und Servletklassen. Diese Annotation
wird in denselben Klassentypen unterstützt wie die Annotation @Resource. Eine vollständige Liste der unterstützten Klassentypen finden Sie
in der Spezifikation Java Platform, Enterprise Edition (Java EE)
5.
|
|
Annotationsklasse | Annotation | Eigenschaften |
---|---|---|
javax.annotation. Resource | Die Annotation @Resource kennzeichnet eine von der Anwendung benötigte WebServiceContext-Ressource.
Anmerkung:
Wenn Sie diese Annotation auf ein Feld des Typs WebServiceContext in der Implementierungsklasse eines Serverendpunkts für einen JavaBeans-Endpunkt oder einen Providerendpunkt anwenden, führt der Container eine Injektion von Instanzen von WebServiceContext im angegebenen Feld durch. Wenn diese Annotation an Stelle der Annotation @WebServiceRef verwendet wird, gelten die für die Annotation @WebServiceRef angegebenen Regeln. |
|
javax.annotation. Resources | Die Annotation @Resources ordnet mehrere @Resource-Annotationen einer bestimmten Klasse zu und fungiert als Container für mehrere Ressourcendeklarationen. |
|
javax.annotation. PostConstruct | Die Annotation @PostConstruct kennzeichnet eine Methode, die nach einer Abhängigkeitsinjektion für die Klasse ausgeführt werden muss.
Wenden Sie diese Annotation auf einen JAX-WS-Anwendungshandler oder die Implementierungsklasse eines Serverendpunkts an. |
|
javax.annotation. PreDestroy | Die Annotation @PreDestroy kennzeichnet eine Methode, die ausgeführt werden muss,
wenn die Instanz gerade aus dem Container entfernt wird.
Wenden Sie diese Annotation auf einen JAX-WS-Anwendungshandler oder die Implementierungsklasse eines Serverendpunkts an. |
|
Annotationsklasse | Annotation | Eigenschaften |
---|---|---|
com.ibm.websphere. wsaddressing. jaxws21. SubmissionAddressing | Die Annotation @SubmissionAddressing gibt an, dass dieser Service die WS-Addressing-Unterstützung
für die Spezifikation 2004/08 WS-Addressing aktivieren soll. Diese Annotation ist Teil der IBM Implementierung der Spezifikation JAX-WS 2.1. Wenden Sie diese Annotation auf Methoden in der Implementierungsklasse eines Serverendpunkts an. |
|