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 サービス呼び出しへの応答方法を制御するのに使用されます。
アノテーション・クラス: | アノテーション: | プロパティー: |
---|---|---|
javax.jws.WebService | @WebService アノテーションは、Web サービスの実装として
Java クラスをマーク付けするか、または Web
サービス・インターフェースの実装としてサービス・エンドポイント・インターフェース
(SEI) をマーク付けします。 重要: • Web サービスを実装する Java クラスは、@WebService または @WebServiceProvider アノテーションのいずれかを指定する必要があります。 両方のアノテーションを指定することはできません。 このアノテーションは、クライアントまたはサーバー SEI または JavaBeans エンドポイントのサーバー・エンドポイントの実装クラスに適用されます。 • アノテーションが、endpointInterface 属性で SEI を参照する場合、SEI も @WebService アノテーションでアノテーションを付けされている必要があります。 • 追加情報については、@WebService でアノテーションを付けたクラスのメソッドのルールを参照してください。 |
|
javax.jws.WebMethod | @WebMethod アノテーションは、Web サービス・オペレーションであるメソッドを示します。
このアノテーションを、クライアントまたはサーバーであるサービス・エンドポイント・インターフェース (SEI) または JavaBeans エンドポイントのサーバー・エンドポイント実装クラスのメソッドに適用します。 重要: • @WebMethod アノテーションは、@WebService アノテーションでアノテーションが付けられたクラスでのみサポートされます。 |
|
javax.jws.Oneway | @Oneway アノテーションは、入力メッセージのみがあり、出力メッセージがない
Web サービスの片方向のオペレーションとしてメソッドを示します。
このアノテーションを、クライアントまたはサーバーであるサービス・エンドポイント・インターフェース (SEI) または JavaBeans エンドポイントのサーバー・エンドポイント実装クラスのメソッドに適用します。 |
|
javax.jws.WebParam | @WebParam アノテーションは、Web サービス・メッセージ・パーツおよび
XML エレメントの個々のパラメーターのマッピングをカスタマイズします。
このアノテーションを、クライアントまたはサーバーであるサービス・エンドポイント・インターフェース (SEI) または JavaBeans エンドポイントのサーバー・エンドポイント実装クラスのメソッドに適用します。 |
|
javax.jws.WebResult | @WebResult アノテーションは、WSDL パーツまたは XML エレメントへの戻り値のマッピングをカスタマイズします。 このアノテーションを、クライアントまたはサーバーであるサービス・エンドポイント・インターフェース (SEI) または JavaBeans エンドポイントのサーバー・エンドポイント実装クラスのメソッドに適用します。 |
|
javax.jws.HandlerChain | @HandlerChain アノテーションは、Web サービスと外部定義されたハンドラー・チェーンを関連付けます。 SEI または実装クラスの @HandlerChain アノテーションを使用することで、サーバー・サイドのハンドラーのみ構成することができます。 クライアント・サイドのハンドラーを構成するいくつかの方法の 1 つを使用します。 生成済みサービス・クラスまたは SEI の @HandlerChain アノテーションを使用することで、クライアント・サイドのハンドラーを構成できます。 さらに、サービスの HandlerResolver インターフェースの実装をプログラム的に登録するか、またはバインディング・オブジェクトのハンドラー・チェーンをプログラム的に設定することができます。 |
|
javax.jws.SOAPBinding | @SOAPBinding アノテーションは、SOAP メッセージ・プロトコルへの
Web サービスのマッピングを指定します。 このアノテーションを、クライアントまたはサーバーであるサービス・エンドポイント・インターフェース (SEI) または JavaBeans エンドポイントのサーバー・エンドポイント実装クラスのタイプまたはメソッドに適用します。 メソッド・レベルのアノテーションは、指定できる対象に制限があり、style プロパティーが DOCUMENT の場合のみ使用されます。メソッド・レベルのアノテーションが指定されていない場合、タイプから @SOAPBinding 動作が使用されます。 |
|
アノテーション・クラス: | アノテーション: | プロパティー: |
---|---|---|
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 を使用可能にできます。 |
|
javax.xml.ws.RequestWrapper | @RequestWrapper アノテーションは、JAXB
で生成された要求ラッパー Bean、エレメント名、およびシリアライゼーションとデシリアライゼーションのネーム・スペースに、ランタイム時に使用される要求ラッパー Bean を提供します。
Java オブジェクトで開始する際、このエレメントは文書リテラル・モードの多重定義の競合を解決するために使用されます。 この場合、className 属性のみが必要です。 このアノテーションを、クライアントまたはサーバーであるサービス・エンドポイント・インターフェース (SEI) または JavaBeans エンドポイントのサーバー・エンドポイント実装クラスのメソッドに適用します。 |
|
javax.xml.ws.ResponseWrapper | @ResponseWrapper アノテーションは、JAXB
で生成された応答ラッパー Bean、エレメント名、およびシリアライゼーションとデシリアライゼーションのネーム・スペースに、ランタイム時に使用される要求ラッパー Bean を提供します。
Java オブジェクトで開始する際、このエレメントは文書リテラル・モードの多重定義の競合を解決するために使用されます。 この場合、className 属性のみが必要です。 このアノテーションを、クライアントまたはサーバーであるサービス・エンドポイント・インターフェース (SEI) または JavaBeans エンドポイントのサーバー・エンドポイント実装クラスのメソッドに適用します。 |
|
javax.xml.ws.ServiceMode | @ServiceMode アノテーションは、サービス・プロバイダーにプロトコル・メッセージ全体へのアクセスが必要か、またはメッセージ・ペイロードのみが必要かを指定します。
重要: • @ServiceMode アノテーションは、@WebServiceProvider アノテーションでアノテーションが付けられたクラスでのみサポートされます。 |
|
javax.xml.ws.WebFault | @WebFault アノテーションは、WSDL 障害を
Java 例外にマップします。これは、WSDL
障害メッセージが参照したグローバル・エレメントから生成された
JAXB タイプのシリアライゼーション中に、障害の名前を取り込むために使用されます。
これは、WSDL 障害に対するサービス固有の例外のマッピングをカスタマイズするのにも使用できます。
このアノテーションは、クライアントまたはサーバーの障害実装クラスにも適用されます。 |
|
javax.xml.ws.WebServiceProvider | @WebServiceProvider アノテーションは、JAX-WS プロバイダー実装クラスの要求を満たすクラスを示します。
重要: • Web サービスを実装する Java クラスは、@WebService または @WebServiceProvider アノテーションのいずれかを指定する必要があります。両方のアノテーションを指定することはできません。 • @WebServiceProvider アノテーションは、サービス実装クラスでのみサポートされます。 • @WebServiceProvider アノテーションのあるクラスには、invoke というオペレーションが必要です。 |
|
アノテーション・クラス: | アノテーション: | プロパティー: |
---|---|---|
javax.annotation.Resource | @Resource アノテーションは、アプリケーションに必要な WebServiceContext リソースにマークを付けます。
このアノテーションを、JavaBeans エンドポイントまたはプロバイダー・エンドポイントのサーバー・エンドポイント実装クラスに適用します。 コンテナーは、初期化される際に WebServiceContext リソースのインスタンスをエンドポイントの実装に注入します。 |
|
javax.annotation.PostConstruct | @PostConstruct アノテーションは、クラスで依存性注入された後に実行される必要のあるメソッドにマークを付けます。
このアノテーションを、JAX-WS アプリケーション・ハンドラー、JavaBeans エンドポイントまたはプロバイダー・エンドポイントのサーバー・エンドポイント実装クラスに適用します。 |
|
javax.annotation.PreDestroy | @PreDestroy アノテーションは、コンテナーによりインスタンスが除去されるプロセスにあるときに実行する必要のあるメソッドにマークを付けます。
このアノテーションを、JAX-WS アプリケーション・ハンドラー、JavaBeans エンドポイントまたはプロバイダー・エンドポイントのサーバー・エンドポイント実装クラスに適用します。 |
|