WebSphere Application Server Version 6.1 Feature Pack for Web Services   
             オペレーティング・システム: AIX , HP-UX, i5/OS, Linux, Solaris, Windows, Windows Vista, z/OS

             目次と検索結果のパーソナライズ化
             New or updated topic for this feature pack

JAX-WS のアノテーション

Java API for XML-Based Web Services (JAX-WS) は、Web サービスの実装に関連したメタデータを指定するため、および Web サービスの開発を簡素化するために、アノテーションの使用に依存しています。 アノテーションでは、サーバー・サイドのサービス実装が Web サービスとしてアクセスされる方法、またはクライアント・サイドの Java クラスが Web サービスにアクセスする方法を記述します。

JAX-WS プログラミング標準は、Java クラスに、メタデータでのアノテーションを付けるためのサポートを導入しています。 メタデータは、Web サービスとしてサービス・エンドポイント・アプリケーションを定義するため、およびクライアントが Web サービスにアクセスする方法を定義するために使用されるものです。 JAX-WS でサポートされるのは、Metadata Facility for the Java Programming Language (Java Specification Request (JSR) 175) 仕様を基にしたアノテーション、Web Services Metadata for the Java Platform (JSR 181) 仕様を基にしたアノテーション、および JAXB アノテーションが含まれる JAX-WS 2.0 (JSR 224) 仕様で定義されたアノテーションの使用です。 JSR 181 標準のアノテーションを使用すると、サービス実装クラスまたはサービス・インターフェース に簡単にアノテーションを付けることができ、アプリケーションが Web サービスとして使用可能になります。 Java ソース内でアノテーションを使用すると、Web サービスの開発およびデプロイメントが 簡素化されます。 通常はデプロイメント記述子ファイル、WSDL ファイルから取得される追加情報の一部を定義したり、または XML および WSDL からソース成果物へメタデータをマッピングすることにより、単純化が実現されます。

バインディング、ハンドラー・チェーン、portType のセット名、サービスおよびその他の WSDL パラメーターの構成にアノテーションを使用します。アノテーションは、Java の WSDL およびスキーマへのマッピング、ならびにランタイム時の JAX-WS ランタイムの処理方法および Web サービス呼び出しへの応答方法を制御するのに使用されます。

JAX-WS がサポートするアノテーションは、下の表にリストされています。 アノテーションのターゲットは、これらの Java オブジェクトに適用されます。
Web サービスのメタデータのアノテーション (JSR 181)
アノテーション・クラス: アノテーション: プロパティー:
javax.jws.WebService @WebService アノテーションは、Web サービスの実装として Java クラスをマーク付けするか、または Web サービス・インターフェースの実装としてサービス・エンドポイント・インターフェース (SEI) をマーク付けします。

重要:

• Web サービスを実装する Java クラスは、@WebService または @WebServiceProvider アノテーションのいずれかを指定する必要があります。 両方のアノテーションを指定することはできません。

このアノテーションは、クライアントまたはサーバー SEI または JavaBeans エンドポイントのサーバー・エンドポイントの実装クラスに適用されます。

• アノテーションが、endpointInterface 属性で SEI を参照する場合、SEI も @WebService アノテーションでアノテーションを付けされている必要があります。

• 追加情報については、@WebService でアノテーションを付けたクラスのメソッドのルールを参照してください。

  • アノテーション・ターゲット: Type
  • プロパティー:
    - name
    wsdl:portType の名前。デフォルト値は、JAVA クラスまたはインターフェースの未修飾名です。(ストリング)
    - targetNamespace
    Web サービスから生成された WSDL エレメントおよび XML エレメントの XML ネーム・スペースを指定します。 デフォルト値は、Web サービスを含むパッケージ名からマップされたネーム・スペースです。 (ストリング)
    - serviceName
    Web サービスのサービス名を指定します: wsdl:service。 デフォルト値は、Java クラスの単純名 + Service です。(ストリング)
    - endpointInterface
    サービスの抽象 Web サービス契約を定義する、サービス・エンドポイント・インターフェースの修飾名を指定します。 指定した場合、サービス・エンドポイント・インターフェースは、抽象 WSDL 契約を定義するために使用されます。(ストリング)
    - portName
    wsdl:portName。デフォルト値は、WebService.name +Port です。(ストリング)
    - wsdlLocation
    Web サービスを定義している、WSDL 文書の Web アドレスを指定します。 Web アドレスは、相対または絶対です。(ストリング)
javax.jws.WebMethod @WebMethod アノテーションは、Web サービス・オペレーションであるメソッドを示します。

このアノテーションを、クライアントまたはサーバーであるサービス・エンドポイント・インターフェース (SEI) または JavaBeans エンドポイントのサーバー・エンドポイント実装クラスのメソッドに適用します。

重要:

• @WebMethod アノテーションは、@WebService アノテーションでアノテーションが付けられたクラスでのみサポートされます。

  • アノテーション・ターゲット: Method
  • プロパティー:
    - operationName
    このメソッドにマッチする wsdl:operation の名前を指定します。 デフォルト値は、Java メソッドの名前です。(ストリング)
    - action
    このオペレーションのアクションを定義します。SOAP バインディングでは、この値は SOAPAction ヘッダーの値を定義します。デフォルト値は、Java メソッドの名前です。(ストリング)
    - exclude
    Web サービスからメソッドを除外するかどうかを指定します。デフォルト値は false です。 (ブール値)
javax.jws.Oneway @Oneway アノテーションは、入力メッセージのみがあり、出力メッセージがない Web サービスの片方向のオペレーションとしてメソッドを示します。

このアノテーションを、クライアントまたはサーバーであるサービス・エンドポイント・インターフェース (SEI) または JavaBeans エンドポイントのサーバー・エンドポイント実装クラスのメソッドに適用します。

  • アノテーション・ターゲット: Method
  • 片方向アノテーションにはプロパティーはありません。
javax.jws.WebParam @WebParam アノテーションは、Web サービス・メッセージ・パーツおよび XML エレメントの個々のパラメーターのマッピングをカスタマイズします。

このアノテーションを、クライアントまたはサーバーであるサービス・エンドポイント・インターフェース (SEI) または JavaBeans エンドポイントのサーバー・エンドポイント実装クラスのメソッドに適用します。

  • アノテーション・ターゲット: Parameter
  • プロパティー:
    - name
    パラメーターの名前。オペレーションがリモート・プロシージャー・コール (RPC) スタイルで、partName 属性が指定されていない場合、これはパラメーターを表す wsdl:part 属性の名前になります。 オペレーションが文書スタイルである場合、またはパラメーターがヘッダーにマップする場合は、-name はパラメーターを表す XML エレメントのローカル名になります。 オペレーションが文書スタイルである場合、パラメーター・スタイルが BARE である場合、およびモードが OUT または INOUT である場合、この属性が必要です。(ストリング)
    - partName
    このパラメーターを表す wsdl:part 属性の名前を定義します。 これは、オペレーションが RPC スタイルである場合、またはオペレーションが文書スタイルでパラメーター・スタイルが BARE である場合にのみ使用されます。 (ストリング)
    - targetNamespace
    パラメーターの XML エレメントの XML ネーム・スペースを指定します。属性が XML エレメントにマップする場合、文書バインディングにのみ適用します。 Web サービスのデフォルト値は、targetNamespace です。 (ストリング)
    - mode
    この値は、このメソッド用にパラメーターがフローする方向を表します。 有効な値は、ININOUT、および OUT です。 (ストリング)
    - header
    パラメーターが、メッセージ本体ではなくメッセージ・ヘッダーにあるかどうかを指定します。 デフォルト値は false です。(ブール値)
javax.jws.WebResult @WebResult アノテーションは、WSDL パーツまたは XML エレメントへの戻り値のマッピングをカスタマイズします。

このアノテーションを、クライアントまたはサーバーであるサービス・エンドポイント・インターフェース (SEI) または JavaBeans エンドポイントのサーバー・エンドポイント実装クラスのメソッドに適用します。

  • アノテーション・ターゲット: Method
  • プロパティー:
    - name
    WSDL ファイルにリストされ、ワイヤーのメッセージにある時の戻り値の名前を指定してます。 RPC バインディングのでは、これは戻り値を表す wsdl:part 属性の名前になります。 文書バインディングでは、-name パラメーターは戻り値を表す XML エレメントのローカル名になります。 RPC および DOCUMENT/WRAPPED バインディングでは、デフォルト値は return です。DOCUMENT/BARE バインディングでは、デフォルト値はメソッド名 + Response です。 (ストリング)
    - targetNamespace
    戻り値の XML ネーム・スペースを指定します。このパラメーターは、オペレーションが RPC スタイルの場合、またはオペレーションが DOCUMENT スタイルの場合、およびパラメーター・スタイルが BARE の場合にのみ使用されます。 (ストリング)
    - header
    結果をヘッダーに運ぶかどうかを指定します。デフォルト値は false です。(ブール値)
    - partName
    RPC または DOCUMENT/BARE オペレーションの結果のパーツ名を指定します。 デフォルト値は @WebResult.name です。(ストリング)
javax.jws.HandlerChain @HandlerChain アノテーションは、Web サービスと外部定義されたハンドラー・チェーンを関連付けます。

SEI または実装クラスの @HandlerChain アノテーションを使用することで、サーバー・サイドのハンドラーのみ構成することができます。

クライアント・サイドのハンドラーを構成するいくつかの方法の 1 つを使用します。 生成済みサービス・クラスまたは SEI の @HandlerChain アノテーションを使用することで、クライアント・サイドのハンドラーを構成できます。 さらに、サービスの HandlerResolver インターフェースの実装をプログラム的に登録するか、またはバインディング・オブジェクトのハンドラー・チェーンをプログラム的に設定することができます。

  • アノテーション・ターゲット: Type
  • プロパティー:
    - file
    ハンドラー・チェーン・ファイルのロケーションを指定します。ファイル・ロケーションは、外部フォームの絶対 java.net.URL またはクラス・ファイルの相対パスのいずれかです。 (ストリング)
    - name
    構成ファイルのハンドラー・チェーンの名前を指定します。(ストリング)
javax.jws.SOAPBinding @SOAPBinding アノテーションは、SOAP メッセージ・プロトコルへの Web サービスのマッピングを指定します。

このアノテーションを、クライアントまたはサーバーであるサービス・エンドポイント・インターフェース (SEI) または JavaBeans エンドポイントのサーバー・エンドポイント実装クラスのタイプまたはメソッドに適用します。

メソッド・レベルのアノテーションは、指定できる対象に制限があり、style プロパティーが DOCUMENT の場合のみ使用されます。メソッド・レベルのアノテーションが指定されていない場合、タイプから @SOAPBinding 動作が使用されます。

  • アノテーション・ターゲット: Type または Method
  • プロパティー:
    - style
    Web サービスとの送受信メッセージのエンコード・スタイルを定義します。 有効な値は、DOCUMENT および RPC です。デフォルト値は DOCUMENT です。(ストリング)
    - use
    Web サービスとの送受信メッセージに使用されるフォーマットを定義します。 デフォルト値は LITERAL です。Feature Pack for Web Services では、ENCODED は、サポートされていません。 (ストリング)
    - parameterStyle
    メソッドのパラメーターがメッセージ本体全体を表しているかどうか、またはパラメーターがオペレーション後に指定された最上位レベルエレメント内にラップされたエレメントかどうかを判別します。 有効な値は、WRAPPED または BARE です。 BARE 値は、DOCUMENT スタイル・バインディングにのみ使用できます。 デフォルト値は WRAPPED です。(ストリング)

JAX-WS アノテーション (JSR 224)
アノテーション・クラス: アノテーション: プロパティー:
javax.xml.ws.BindingType @BindingType アノテーションは、このタイプのエンドポイントを公開する際に使用するバインディングを指定します。

このアノテーションを、JavaBeans エンドポイントまたはプロバイダー・エンドポイントのサーバー・エンドポイント実装クラスに適用します。

重要:

javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_MTOM_BINDING または javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_MTOM_BINDING のいずれかをアノテーションの値として指定することで、Java Bean エンドポイント実装クラスの @BindingType annotation を使用して、MTOM を使用可能にできます。

  • アノテーション・ターゲット: Type
  • プロパティー:
    - value
    バインディング ID の Web アドレ スを示します。有効な値は、javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_BINDINGjavax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING、および javax.xml.ws.http.HTTPBinding.HTTP2HTTP_BINDING です。デフォルト値は javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_BINDING です。 (ストリング)
javax.xml.ws.RequestWrapper @RequestWrapper アノテーションは、JAXB で生成された要求ラッパー Bean、エレメント名、およびシリアライゼーションとデシリアライゼーションのネーム・スペースに、ランタイム時に使用される要求ラッパー Bean を提供します。

Java オブジェクトで開始する際、このエレメントは文書リテラル・モードの多重定義の競合を解決するために使用されます。 この場合、className 属性のみが必要です。

このアノテーションを、クライアントまたはサーバーであるサービス・エンドポイント・インターフェース (SEI) または JavaBeans エンドポイントのサーバー・エンドポイント実装クラスのメソッドに適用します。

  • アノテーション・ターゲット: Method
  • プロパティー:
    - localName
    要求ラッパーを表す XML スキーマ・エレメントのローカル名を指定します。 デフォルト値は、javax.jws.WebMethod アノテーションで定義されたとおり、operationName です。 (ストリング)
    - targetNamespace
    要求ラッパー・メソッドの XML ネーム・スペースを指定します。デフォルト値は、SEI のターゲット・ネーム・スペースです。 (ストリング)
    - className
    要求ラッパーを表すクラスの名前を指定します。 (ストリング)
javax.xml.ws.ResponseWrapper @ResponseWrapper アノテーションは、JAXB で生成された応答ラッパー Bean、エレメント名、およびシリアライゼーションとデシリアライゼーションのネーム・スペースに、ランタイム時に使用される要求ラッパー Bean を提供します。

Java オブジェクトで開始する際、このエレメントは文書リテラル・モードの多重定義の競合を解決するために使用されます。 この場合、className 属性のみが必要です。

このアノテーションを、クライアントまたはサーバーであるサービス・エンドポイント・インターフェース (SEI) または JavaBeans エンドポイントのサーバー・エンドポイント実装クラスのメソッドに適用します。

  • アノテーション・ターゲット: Method
  • プロパティー:
    - localName
    要求ラッパーを表す XML スキーマ・エレメントのローカル名を指定します。 デフォルト値は、operationName + Response です。operationName は、javax.jws.WebMethod アノテーションで定義されます。 (ストリング)
    - targetNamespace
    要求ラッパー・メソッドの XML ネーム・スペースを指定します。デフォルト値は、SEI のターゲット・ネーム・スペースです。 (ストリング)
    - className
    応答ラッパーを表すクラスの名前を指定します。 (ストリング)
javax.xml.ws.ServiceMode @ServiceMode アノテーションは、サービス・プロバイダーにプロトコル・メッセージ全体へのアクセスが必要か、またはメッセージ・ペイロードのみが必要かを指定します。

重要:

• @ServiceMode アノテーションは、@WebServiceProvider アノテーションでアノテーションが付けられたクラスでのみサポートされます。

  • アノテーション・ターゲット: Type
  • プロパティー:
    - value
    プロバイダー・クラスが、メッセージのペイロード PAYLOAD または メッセージ全体 MESSAGE を受け入れるかどうかを示します。デフォルト値は PAYLOAD です。 (ストリング)
javax.xml.ws.WebFault @WebFault アノテーションは、WSDL 障害を Java 例外にマップします。これは、WSDL 障害メッセージが参照したグローバル・エレメントから生成された JAXB タイプのシリアライゼーション中に、障害の名前を取り込むために使用されます。 これは、WSDL 障害に対するサービス固有の例外のマッピングをカスタマイズするのにも使用できます。

このアノテーションは、クライアントまたはサーバーの障害実装クラスにも適用されます。

  • アノテーション・ターゲット: Type
  • プロパティー:
    - name
    WSDL ファイルの対応障害を表す XML エレメントのローカル名を指定します。 実際の値を指定する必要があります。 (ストリング)
    - targetNamespace
    WSDL ファイルの対応障害を表す XML エレメントのネーム・スペースを指定します。 (ストリング)
    - faultBean
    障害 Bean クラスの名前を指定します。 (ストリング)
javax.xml.ws.WebServiceProvider @WebServiceProvider アノテーションは、JAX-WS プロバイダー実装クラスの要求を満たすクラスを示します。

重要:

• Web サービスを実装する Java クラスは、@WebService または @WebServiceProvider アノテーションのいずれかを指定する必要があります。両方のアノテーションを指定することはできません。

• @WebServiceProvider アノテーションは、サービス実装クラスでのみサポートされます。

• @WebServiceProvider アノテーションのあるクラスには、invoke というオペレーションが必要です。

  • アノテーション・ターゲット: Type
  • プロパティー:
    - targetNamespace
    Web サービスから生成された WSDL エレメントおよび XML エレメントの XML ネーム・スペースを指定します。 デフォルト値は、Web サービスを含むパッケージ名からマップされたネーム・スペースです。 (ストリング)
    - serviceName
    Web サービスのサービス名を指定します: wsdl:service。 デフォルト値は、Java クラスの単純名 + Service です。 (ストリング)
    - portName
    wsdl:portName。デフォルト値はクラスの名前 + Port です。 (ストリング)
    - wsdlLocation
    Web サービスを定義している、WSDL 文書の Web アドレス この属性は必須です。 (ストリング)

JAX-WS の共通アノテーション (JSR 250)
アノテーション・クラス: アノテーション: プロパティー:
javax.annotation.Resource @Resource アノテーションは、アプリケーションに必要な WebServiceContext リソースにマークを付けます。

このアノテーションを、JavaBeans エンドポイントまたはプロバイダー・エンドポイントのサーバー・エンドポイント実装クラスに適用します。 コンテナーは、初期化される際に WebServiceContext リソースのインスタンスをエンドポイントの実装に注入します。

  • アノテーション・ターゲット: Field または Method
  • プロパティー:
    - type
    リソースの Java タイプを示します。デフォルトの java.lang.Object または javax.xml.ws.Web ServiceContext 値を使用する必要があります。タイプがデフォルトの場合、リソースをフィールドまたはメソッドに注入する必要があります。 この場合、メソッドで定義されたフィールドのタイプまたは JavaBeans プロパティーのタイプは javax.xml.ws.WebServiceContext でなければなりません。 (ストリング)
javax.annotation.PostConstruct @PostConstruct アノテーションは、クラスで依存性注入された後に実行される必要のあるメソッドにマークを付けます。

このアノテーションを、JAX-WS アプリケーション・ハンドラー、JavaBeans エンドポイントまたはプロバイダー・エンドポイントのサーバー・エンドポイント実装クラスに適用します。

  • アノテーション・ターゲット: Method
javax.annotation.PreDestroy @PreDestroy アノテーションは、コンテナーによりインスタンスが除去されるプロセスにあるときに実行する必要のあるメソッドにマークを付けます。

このアノテーションを、JAX-WS アプリケーション・ハンドラー、JavaBeans エンドポイントまたはプロバイダー・エンドポイントのサーバー・エンドポイント実装クラスに適用します。

  • アノテーション・ターゲット: Method

@WebService でアノテーションを付けたクラスのメソッドのルール

以下のルールは、@WebService アノテーションでアノテーションが付けられたクラスのメソッドに適用されます。
  • 実装クラスの @WebService アノテーションが SEI を参照する場合、実装クラスは @WebMethod アノテーションを持てません。
  • @WebMethod アノテーションが指定されているかどうかに関わらず、すべての SEI の public メソッドは、公開されたメソッドと見なされます。 exclude 属性を含む SEI に @WebMethod アノテーションを持つことは、間違っています。
  • SEI を参照しない実装クラスについては、@WebMethod アノテーションが exclude=true の値で指定されている場合、そのメソッドは公開されません。 @WebMethod アノテーションが指定されていない場合、java.lang.Object から継承されたメソッドを除いて、継承メソッドを含むすべての public メソッドは公開されます。



関連概念
JAX-WS
JAXB
関連情報
Web サービスの仕様と API
Java API for XML Web Services (JAX-WS) API 文書
参照トピック    

ご利用条件 | フィードバック

最終更新: Jan 21, 2008 4:10:06 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.wsfep.multiplatform.doc/info/ae/ae/rwbs_jaxwsannotations.html