Web Services Metadata Annotations (JSR 181)

JSR 181 仕様に基づく注釈を使用すると、Web サービス実装クラスまたは Web サービス・インターフェースに注釈を付けることができます。その後で、ウィザードを使用して、または、アプリケーションをサーバーに公開して、Web サービスを生成することができます。

注: JSR 181 規格の各注釈を含む Java™ クラスには javax.jws.xxx という名前が付けられます。xxx は、注釈の名前のうち、文字 @ の後の部分です。例えば、@WebService に対応する Java クラスの名前は、javax.jws.webservice です。
名前: 説明: プロパティー: 定義:
@WebService この注釈は、Java クラスまたはサービス・エンドポイント・インターフェース (SEI) のいずれかに、Web サービス・インターフェースを実装するものとしてマークを付けます。

注釈のプロパティーのうちの 3 つ (serviceName、portName、endpointInterface) は、JavaBeans エンドポイントのサービス・エンドポイント実装クラスについてのみ使用することができます。

endpointInterface 属性を使用して注釈で SEI を参照する場合、その SEI にも @WebService 注釈が付けられていなければなりません。

デフォルトでは、@WebService 注釈を指定するクラス内のすべての public メソッドが Web サービスで公開されます。

  • 注釈の対象: タイプ
  • プロパティー:
    - name
    wsdl:portType の名前です。name プロパティーは、SEI または Java 実装クラスにマップされます。デフォルト値は、Java インターフェースまたはクラスの非修飾名です。(文字列)
    - targetNamespace
    Web サービスから生成される WSDL 要素および XML 要素の XML 名前空間を指定します。
    • @WebService.targetNamespace 注釈がサービス・エンドポイント・インターフェース上にある場合、wsdl:portType (および関連する XML エレメント) の 名前空間として targetNamespace が使用されます。
    • @WebService.targetNamespace 注釈がサービス・エンドポイント・インターフェースを (endpointInterface 注釈要素を介して) 参照しないサービス実装 Bean 上にある場合、targetNamespace は、wsdl:portType と wsdl:service (および関連する XML 要素) の両方に使用されます。
    • @WebService.targetNamespace 注釈がサービス・エンドポイント・インターフェースを参照する (endpointInterface を注釈要素を介して) サービス実装 Bean 上にある場合、targetNamespace は wsdl:service (および関連する XML 要素) のみに使用さ れます。

    デフォルト値は、Web サービスを含むパッケージの名前からマップされる名前空間です。(文字列)

    - serviceName
    Web サービスのサービス名を指定します: wsdl:service。このプロパティーは、エンドポイント・インターフェースで使用できません。デフォルト値は「Java クラスの単純名 + サービス」です。(文字列)
    - endpointInterface
    サービスの抽象 Web サービス契約を定義する、サービス・エンドポイント・インターフェースの修飾名を指定します。指定すると、サービス・エンドポイント・インターフェースを使用して抽象 WSDL 規約が判別されます。(文字列)
    - portName
    wsdl:portName を指定します。portName プロパティーは、エンドポイント・ポートの名前です。デフォルト値は「WebService.name + ポート」です。(文字列)
    - wsdlLocation
    Web サービスを定義する WSDL 文書の Web アドレスを指定します。Web アドレスは、相対アドレスでも絶対アドレスでもかまいません。(文字列)
@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 この注釈は、Web サービス操作であるメソッドを示します。

この注釈は、クライアントまたはサーバーのサービス・エンドポイント・インターフェース (SEI) 内あるいは JavaBeans エンドポイントのサービス・エンドポイント実装クラス内の、public メソッドに適用することができます。

@WebMethod 注釈は、@WebService 注釈が付けられているクラスでのみサポートされます。

  • 注釈の対象: メソッド
  • プロパティー:
    - operationName
    このメソッドに対応する wsdl:operation の名前を指定します。デフォルト値は、Java メソッドの名前です。(文字列)
    - action
    この操作のアクションを定義します。SOAP バインディングの場合、この値によって SOAPAction ヘッダーの値が決まります。(文字列)
    - exclude
    Web サービスからメソッドを除外するかどうかを指定します。このプロパティーは、実装クラスを使用する場合にのみ使用することができます。継承メソッドがこの Web サービスの一部として公開されないようにするために使用します。 この要素が指定された場合、他の要素を @WebMethod に指定できません。このプロパティーは、エンドポイント・インターフェースで使用できません。

    デフォルト値は、false です。(ブール値)

@Retention(value = RetentionPolicy.RUNTIME)
@Target({TYPE})
public @interface WebMethod{
	String operationName() default “”;
	String action() default “”;
	boolean exclude() default false;
};
@Oneway この注釈は、あるメソッドを Web サービスの片方向操作として示します。片方向操作には入力メッセージはありますが、出力メッセージはありません。この注釈は、戻り値を一切持たないメソッドにのみ使用することができます。

この注釈は、クライアントまたはサーバーのサービス・エンドポイント・インターフェース (SEI) 内あるいは JavaBeans エンドポイントのサービス・エンドポイント実装クラス内の、public メソッドに適用することができます。

  • 注釈の対象: メソッド
  • OneWay 注釈に関するプロパティーはありません。
@Retention(value = RetentionPolicy.RUNTIME)
@Target({TYPE})
public @interface OneWay{
};
@WebParam この注釈は、個々のパラメーターから Web サービスのメッセージ・パーツおよび XML 要素へのマッピングをカスタマイズします。

この注釈は、クライアントまたはサーバーのサービス・エンドポイント・インターフェース (SEI) 内あるいは JavaBeans エンドポイントのサービス・エンドポイント実装クラス内の、public メソッドに適用することができます。

  • 注釈の対象: パラメーター
  • プロパティー:
    - name
    操作がリモート・プロシージャー・コール (RPC) スタイルであり、partName 属性が指定されていない場合、これは、パラメーターを表す wsdl:part 属性の名前です。操作が文書スタイルである場合や、パラメーターがヘッダーにマップされる場合、name は、パラメーターを表す XML 要素のローカル名です。この属性は、操作が文書スタイルで、パラメーター・スタイルが BARE であり、モードが OUT または INOUT である場合には必須です。partName 属性が指定されている場合、name 属性は無視されます。(文字列)
    - partName
    このパラメーターを表す wsdl:part 属性の名前を定義します。これは、操作が RPC スタイルである場合、または、操作が文書スタイルで、パラメーター・スタイルが BARE である場合にのみ使用します。(文字列)
    - targetNamespace
    パラメーターの XML 要素の XML 名前空間を指定します。属性が XML 要素にマップされる場合の文書バインディングについてのみ適用されます。Web サービスのデフォルト値は、targetNamespace です。(文字列)
    - mode
    値は、このメソッドのパラメーター・フローの方向を表します。有効な値は、ININOUT、および OUT です。(文字列)
    - header
    パラメーターがメッセージ本体ではなくメッセージ・ヘッダーに入れられるかどうかを指定します。デフォルト値は、false です。(ブール値)
@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 この注釈は、戻り値を WSDL パートまたは XML 要素にマップする方法をカスタマイズします。

この注釈は、クライアントまたはサーバーのサービス・エンドポイント・インターフェース (SEI) 内あるいは JavaBeans エンドポイントのサービス・エンドポイント実装クラス内の、public メソッドに適用することができます。

  • 注釈の対象: メソッド
  • プロパティー:
    - name
    WSDL ファイルでリストされ、送信時にメッセージから検出される、戻り値の名前を指定します。RPC バインディングの場合、これは、戻り値を表す wsdl:part 属性の名前です。文書バインディングの場合、name パラメーターは、戻り値を表す XML 要素のローカル名です。デフォルト値は、RPC バインディングおよび DOCUMENT/WRAPPED バインディングの return です。デフォルト値は「メソッド名 + DOCUMENT/BARE バインディングの Response」です。(文字列)
    - targetNamespace
    戻り値の XML 名前空間を指定します。この注釈は、戻り値が XML 要素にマップされる場合の文書バインディングについてのみ使用します。デフォルト値は、Web サービスの targetNamespace です。(文字列)
    - header
    結果がヘッダーに入れて運ばれるようにするかどうかを指定します。デフォルト値は、false です。(文字列)
    - partName
    RPC または DOCUMENT/BARE 操作に伴う結果のパーツ名を指定します。デフォルト値は、@WebResult.name です。(ブール値)
@Retention(value = RetentionPolicy.RUNTIME)
@Target({METHOD})
public @interface WebResult{
	String name() default “return”;
	String targetNamespace default() “”;
	boolean header() default false;	
	String partName() default "";
};
@HandlerChain この注釈は、Web サービスを外部定義のハンドラー・チェーンに関連付けます。ハンドラー構成を複数の Web サービスで共有する必要があり、アプリケーション・ソース内へのハンドラー構成の組み込みが機能しない場合、この注釈を利用することができます。

この注釈は、クライアントまたはサーバーのサービス・エンドポイント・インターフェース (SEI)、あるいは JavaBeans エンドポイントのサービス・エンドポイント実装クラスに適用します。

  • 注釈の対象: タイプ
  • プロパティー:
    - file
    ハンドラー・チェーン・ファイルのロケーションを指定します。ファイルのロケーションは、外部フォーム内の絶対 java.net.URL か、あるいは、ソースまたはクラス・ファイルからの相対パスです。(文字列)
    - name
    構成ファイル内のハンドラー・チェーンの名前を指定します。(文字列)
@Retention(value = RetentionPolicy.RUNTIME)
@Target({TYPE})
public @interface HandlerChain{
	String file();
	String name();
};
@SOAPBinding この注釈は、Web サービスから SOAP メッセージ・プロトコルへのマッピングを指定します。

この注釈は、クライアントまたはサーバーのサービス・エンドポイント・インターフェース (SEI) 内あるいは JavaBeans エンドポイントのサービス・エンドポイント実装クラス内の、type または public メソッドに適用することができます。

メソッド・レベルの注釈では、指定できるものが限られます。この注釈は、style プロパティーの値が DOCUMENT である場合にのみ使用します。メソッド・レベルの注釈が指定されていない場合は、タイプに基づく @SOAPBinding 動作が使用されます。

  • 注釈の対象: タイプまたはメソッド
  • プロパティー:
    - style
    Web サービスとの送受信メッセージのエンコード・スタイルを定義します。有効な値は、DOCUMENT および RPC です。デフォルト値は、DOCUMENT です。(文字列)
    - use
    Web サービスとの間で送受信されるメッセージに使用するエンコードを定義します。デフォルト値は、LITERAL です。値 ENCODED はサポートされていません。(文字列)
    - parameterStyle
    メソッドのパラメーターがメッセージ本文全体を表すものかどうか、あるいは、それらのパラメーターが、操作の名前が付けられる最上位の要素内でラップされる要素であるかどうかを指定します。有効な値は、WRAPPED または BARE です。値 BARE は、DOCUMENT スタイル・バインディングを使用する場合に使用することができます。デフォルト値は、WRAPPED です。(文字列)
@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;
};
トピックのタイプを示すアイコン 参照のトピック
インフォメーション・センターのご利用条件 | フィードバック

タイム・スタンプ・アイコン 最終更新: May 29, 2014 10:20

ファイル名: rwsandoc003.html