Metadatenannotationen für Web-Services (JSR 181)

Mithilfe von Annotationen aus der Spezifikation JSR 181 können Sie eine Web-Service-Implementierungsklasse oder eine Web-Service-Schnittstelle annotieren. Anschließend können Sie einen Web-Service mit einem Assistenten oder durch Veröffentlichung der Anwendung in einem Server generieren.

Anmerkung: Die Java™-Klasse, die jede Annotation im Standard JSR 181 enthält, hat den Namen "javax.jws.xxx", wobei xxx für den Namen der Annotation hinter dem Zeichen '@' steht. Der Java-Klassenname, der @WebService entspricht, ist beispielsweise javax.jws.webservice.
Name: Beschreibung: Eigenschaften: Definitionen:
@WebService Diese Annotation markiert eine Java-Klasse oder eine Serviceendpunktschnittstelle, die als Web-Service-Schnittstelle implementiert wird.

Drei der Annotationseigenschaften können nur mit einer Serviceendpunktimplementierungsklasse für einen JavaBeans-Endpunkt verwendet werden. Diese Eigenschaften sind "serviceName", "portName" und "endpointInterface".

Wenn die Annotation über das Attribut endpointInterface auf eine Serviceendpunktschnittstelle verweist, muss die Serviceendpunktschnittstelle auch die Annotation "@WebService" haben.

Standardmäßig werden alle öffentlichen Methoden in einer Klasse, die die Annotation "@WebService" spezifiziert, im Web-Service bereitgestellt.

  • Annotationsziel: Typ
  • Eigenschaften:
    - name
    Der Name des Elements wsdl:portType. Die Eigenschaft name wird einer Serviceendpunktschnittstelle oder einer Java-Implementierungsklasse zugeordnet. Der Standardwert ist der nicht qualifizierte Name der Java-Schnittstelle oder -Klasse-. (String)
    - targetNamespace
    Gibt den XML-Namespace der WSDL- und XML-Elemente an, die aus dem Web-Service generiert werden.
    • Wenn die Annotation "@WebService.targetNamespace" in einer Serviceendpunktschnittstelle enthalten ist, wird das Element "targetNamespace" als Namespace für das Element "wsdl:portType" (und die zugehörigen XML-Elemente) verwendet.
    • Wenn die Annotation "@WebService.targetNamespace" in einer Serviceimplementierungsbean enthalten ist, die nicht (über das Annotationselement "endpointInterface" auf eine Serviceendpunktschnittstelle verweist, wird das Element "targetNamespace" für die Elemente "wsdl:portType" und "wsdl:service" (und die zugehörigen XML-Elemente) verwendet.
    • Wenn sich die Annotation "@WebService.targetNamespace" in einer Serviceimplementierungsbean befindet, die (über das Annotationselement "endpointInterface") auf eine Serviceendpunktschnittstelle verweist, wird das Element "targetNamespace" nur für das Element "wsdl:service" (und die zugehörigen XML-Elemente) verwendet.

    Der Standardwert ist der Namespace, der über den Paketnamen, der den Web-Service enthält, zugeordnet wird. (String)

    - serviceName
    Gibt den Servicenamen des Web-Service an: wsdl:service. Diese Eigenschaft ist in Endpunktschnittstellen nicht zulässig. Der Standardwert setzt sich aus dem einfachen Name der Java-Klasse plus Service zusammen. (String)
    - endpointInterface
    Gibt den qualifizierten Namen der Serviceendpunktschnittstelle an, die den abstrakten Web-Service-Vertrag für die Services definiert. Wenn Sie diese Eigenschaft angeben, wird die Serviceendpunktschnittstelle verwendet, um den abstrakten WSDL-Vertrag zu bestimmen. (String)
    - portName
    Das Element wsdl:portName. Die Eigenschaft portName ist der Name des Endpunktports. Der Standardwert setzt sich aus WebService.Name +Port zusammen. (String)
    - wsdlLocation
    Gibt die Webadresse des WSDL-Dokuments an, das den Web-Service definiert. Die Webadresse kann relativ oder absolut angegeben werden. (String)
@Retention(value = RetentionPolicy.RUNTIME)
@Target({TYPE})
public @interface WebService{
	String name() default “”;
	String targetNamespace() default “”;
	String serviceName() default “”';
	String wsdlLocation() default “”;
	String endpointInterface() default “”;
	String portName() default “”;
};
@WebMethod Diese Annotation bezeichnet eine Methode, die eine Web-Service-Operation ist.

Sie können diese Annotation auf öffentliche Methoden in einer Client- oder Server-Serviceendpunktschnittstelle oder in einer Serviceendpunktimplementierungsklasse für einen JavaBeans-Endpunkt anwenden.

Die Annotation "@WebMethod" wird nur in Klassen unterstützt, die die Annotation "@WebService" haben.

  • Annotationsziel: Methode
  • Eigenschaften:
    - operationName
    Gibt den Namen für das Element wsdl:operation an, das dieser Methode entspricht. Der Standardwert ist der Name der Java-Methode. (String)
    - action
    Definiert die Aktion für diese Operation. Für SOAP-Bindungen bestimmt dieser Wert den Wert des Headers "SOAPAction". (String)
    - exclude
    Gibt an, ob eine Methode vom Web-Service ausgeschlossen werden soll. Diese Eigenschaft kann nur mit einer Implementierungsklasse verwendet werden. Diese Eigenschaft wird verwendet, um zu verhindern, dass eine übernommene Methode im Rahmen dieses Web-Service bereitgestellt wird. Wenn dieses Element angegeben wird, dürfen keine anderen Elemente für @WebMethod angegeben werden. Diese Eigenschaft ist in Endpunktschnittstellen nicht zulässig.

    Der Standardwert ist false. (Boolean)

@Retention(value = RetentionPolicy.RUNTIME)
@Target({TYPE})
public @interface WebMethod{
	String operationName() default “”;
	String action() default “”;
	boolean exclude() default false;
};
@Oneway Diese Annotation bezeichnet eine Methode als unidirektionale Operation für einen Web-Service. Sie hat eine Eingabenachricht, aber keine Ausgabenachricht. Diese Annotation kann nur in Methoden verwendet werden, die keinen Rückgabewert haben.

Sie können diese Annotation auf öffentliche Methoden in einer Client- oder Server-Serviceendpunktschnittstelle oder in einer Serviceendpunktimplementierungsklasse für einen JavaBeans-Endpunkt anwenden.

  • Annotationsziel: Methode
  • Die Annotation "OneWay" hat keine Eigenschaften.
@Retention(value = RetentionPolicy.RUNTIME)
@Target({TYPE})
public @interface OneWay{
};
@WebParam Diese Annotation passt die Zuordnung eines einzelnen Parameters zu einem Web-Service-Nachrichtenabschnitt und einem XML-Element an.

Sie können diese Annotation auf öffentliche Methoden in einer Client- oder Server-Serviceendpunktschnittstelle oder in einer Serviceendpunktimplementierungsklasse für einen JavaBeans-Endpunkt anwenden.

  • Annotationsziel: Parameter
  • Eigenschaften:
    - name
    Wenn die Operation den Stil "Remote Procedure Call" (RPC) hat und das Attribut partName nicht angegeben wird, ist dies der Name des Attributs wsdl:part, das den Parameter darstellt. Wenn die Operation den Stil "document" hat oder der Parameter einem Header zugeordnet ist, ist name der lokale Name des XML-Elements, das den Parameter darstellt. Dieses Attribut ist erforderlich, wenn die Operation den Stil "DOCUMENT" und der Parameter den Stil BARE hat und der Modus OUT oder INOUT eingestellt ist. Wenn das Attribut "partName angegeben ist, wird Attribut name ignoriert. (String)
    - partName
    Definiert den Namen des Attributs wsdl:part, das das diesen Parameter repräsentiert. Verwenden Sie diese Eigenschaft nur, wenn die Operation den Stil "RPC" oder den Stil "DOCUMENT" und der Parameter den Stil BARE hat. (String)
    - targetNamespace
    Gibt den XML-Namespace des XML-Elements für den Parameter an. Diese Eigenschaft gilt nur für Dokumentbindungen, wenn das Attribut einem XML-Element zugeordnet ist. Der Standardwert ist das Attribut targetNamespace für den Web-Service. (String)
    - mode
    Der Wert stellt die Flussrichtung des Parameters für diese Methode dar. Die gültigen Werte sind IN, INOUT und OUT. (String)
    - header
    Gibt an, ob sich der Parameter in einem Nachrichtenheader und nicht im Nachrichtenhauptteil befindet. Der Standardwert ist false. (Boolean)
@Retention(value = RetentionPolicy.RUNTIME)
@Target({PARAMETER})
public @interface WebParam{
	public enum Mode{
		IN,
		OUT,
		INOUT
	};
	String name() default “”;
	String partName() default "";
	String targetNamespace() default “”;
	Mode mode() default Mode.IN
	boolean header() default false;
};
@WebResult Diese Anmerkung passt die Zuordnung eines Rückgabewerts zu einem WSDL-Abschnitt oder einem XML-Element an.

Sie können diese Annotation auf öffentliche Methoden in einer Client- oder Server-Serviceendpunktschnittstelle oder in einer Serviceendpunktimplementierungsklasse für einen JavaBeans-Endpunkt anwenden.

  • Annotationsziel: Methode
  • Eigenschaften:
    - name
    Gibt den Namen des Rückgabewerts so an, wie er in der WSDL-Datei aufgelistet ist und in Nachrichten in der Verbindung gefunden wird. Für RPC-Bindungen ist dies der Name des Attributs wsdl:part, das den Rückgabewert darstellt. Für Dokumentbindungen gibt der Parameter name den lokalen Namen des XML-Elements an, das den Rückgabewert darstellt. Der Standardwert ist return für Bindungen des Typs "RPC" und "DOCUMENT/WRAPPED". Für Bindungen des Typs "DOCUMENT/BARE" ist der Standardwert der Methodenname + Response. (String)
    - targetNamespace
    Gibt den XML-Namespace für den Rückgabewert an. Verwenden Sie diese Annotation nur für Dokumentbindungen, wenn der Rückgabewert einem XML-Element zugeordnet ist. Der Standardwert ist der targetNamespace-Wert für den Web-Service. (String)
    - header
    Gibt an, ob das Ergebnis in einem Header übertragen wird. Der Standardwert ist false. (String)
    - partName
    Gibt den Abschnittsnamen für das Ergebnis bei Operationen des Typs "RPC" oder "DOCUMENT/BARE" an. Der Standardwert ist @WebResult.name. (Boolean)
@Retention(value = RetentionPolicy.RUNTIME)
@Target({METHOD})
public @interface WebResult{
	String name() default “return”;
	String targetNamespace default() “”;
	boolean header() default false;	
	String partName() default "";
};
@HandlerChain Diese Annotation ordnet den Web-Service einer extern definierten Handlerkette zu. Sie können diese Annotation verwenden, wenn die Handlerkonfiguration von mehreren Web-Services gemeinsam verwendet werden muss und die übergeordnete Handlerkonfiguration in der Anwendungsquelle ineffizient ist.

Wenden Sie diese Annotation auf eine Client- oder Server-Serviceendpunktschnittstelle oder auf eine Serviceendpunktimplementierungsklasse für einen JavaBeans-Endpunkt an.

  • Annotationsziel: Typ
  • Eigenschaften:
    - file
    Gibt die Position der Datei mit der Handlerkette an. Die Dateiposition kann eine absolute java.net.URL in externem Format oder ein relativer Pfad von der Quellen- oder Klassendatei sein. (String)
    - name
    Gibt den Namen der Handlerkette in der Konfigurationsdatei an. (String)
@Retention(value = RetentionPolicy.RUNTIME)
@Target({TYPE})
public @interface HandlerChain{
	String file();
	String name();
};
@SOAPBinding Diese Annotation gibt die Zuordnung des Web-Service im SOAP-Nachrichtenprotokoll an.

Sie können diese Annotation auf einen Typ oder auf öffentliche Methoden in einer Client- oder Server-Serviceendpunktschnittstelle oder in einer Serviceendpunktimplementierungsklasse für einen JavaBeans--Endpunkt anwenden.

Die Annotation auf Methodenebene ist in Bezug auf die Spezifikationsmöglichkeiten beschränkt. Verwenden Sie die Annotation nur, wenn die Eigenschaft style den Wert DOCUMENT hat. Wenn die Annotation auf Methodenebene nicht angegeben wird, wird das @SOAPBinding-Verhalten des Typs verwendet.

  • Annotationsziel: Typ oder Methode
  • Eigenschaften:
    - style
    Definiert den Parameterstil für Nachrichten, die an den und vom Web-Service gesendet werden. Die gültigen Werte sind DOCUMENT und RPC. Der Standardwert ist DOCUMENT. (String)
    - use
    Definiert die Codierung für Nachrichten, die an den und vom Web-Service gesendet werden. Der Standardwert ist LITERAL. ENCODED ist kein unterstützter Wert. (String)
    - parameterStyle
    Bestimmt, ob die Parameter der Methode den gesamten Nachrichtenhauptteil darstellen oder ob die Parameter Elemente sind, die in ein Element der höchsten Ebene eingeschlossen sind, das nach der Operation benannt ist. Die gültigen Werte sind WRAPPED und BARE. Sie können den Wert BARE für Bindungen des Stils DOCUMENT verwenden. Der Standardwert ist WRAPPED. (String)
@Retention(value = RetentionPolicy.RUNTIME)
@Target({TYPE})
public @interface SOAPBinding{
	public enum Style{
		DOCUMENT,
		RPC
	};
	public enum Use{
		LITERAL,
	};
	public enum ParameterStyle{
		BARE,
		WRAPPED
	};
	Style style() default Style.DOCUMENT
	Use use() default Use.LITERAL
	ParameterStyle parameterStyle() default ParameterStyle.WRAPPED;
};
Symbol das den Typ des Artikels anzeigt. Referenzartikel
Nutzungsbedingungen für Information Center | Feedback

Symbol für Zeitmarke Letzte Aktualisierung: 29.04.2014

Dateiname: rwsandoc003.html