Java™ API for XML-Based Web Services では、Java コードで注釈を使用して、Web サービスを簡単に作成することができます。
Java API for XML-Based Web Services (JAX-WS) プログラミング規格は、注釈に依存して、Web サービス実装に関連付けられるメタデータを指定します。また、この規格は、注釈に依存して、Web サービスの開発を簡略化します。注釈は Web サービスの 2 つの側面を表します。1 つは、どのようにサーバー・サイドのサービス実装が Web サービスとしてアクセスされるかということであり、もう 1 つは、どのようにクライアント・サイドの Java クラスが Web サービスにアクセスするかということです。
JAX-WS プログラミング規格は、注釈を使用した Java クラスへのメタデータの付加をサポートしています。この場合のメタデータは、サービス・エンドポイント・アプリケーションを Web サービスとして定義したり、クライアントが Web サービスにアクセスする方法を指定したりするために使用されます。JAX-WS 規格は、以下に示すように、いくつかの Java Specification Requests (JSR) に基づく注釈の使用法をサポートしています。
- Metadata Facility for the Java Programming Language (JSR 175)
- Web Services Metadata for the Java Platform (JSR 181)
- Java API for XML-Based Web Services (JAX-WS) 2.0 (JSR 224)
- Common Annotations for the Java Platform (JSR 250)
JSR 181 規格に基づく注釈を使用すると、サービス実装クラスまたはサービス・インターフェースに注釈を付けることができます。その後で、ウィザードを使用して、または、アプリケーションをサーバーに公開して、Web サービスを生成することができます。Java ソース・コードと Java クラスの両方で注釈を使用すると、Web サービスの開発が簡略化されます。このような方法で注釈を使用して、一般的にはデプロイメント記述子ファイルから取得する追加情報、Web サービス記述言語 (WSDL) ファイル、または、XML ファイルおよび WSDL ファイルからソース成果物へのメタデータのマッピングを定義します。
注釈を使用して、バインディングおよびハンドラー・チェーンを構成したり、ポート・タイプ、サービス、およびその他の WSDL パラメーターの名前を設定したりすることができます。また、ビルド時に注釈を使用して Java を WSDL やスキーマにマップすることや、実行時に使用して JAX-WS ランタイムが Web サービス呼び出しを処理したり Web サービス呼び出しに応答したりする方法を制御することもできます。
この製品では、Web サービス・クライアント・ウィザードを使用して作成するクライアントで注釈を使用します。このウィザードでは、クライアント・プロキシー、および注釈付きの静的サービス・クラスが生成されます。それらの注釈では、クライアントが Web サービスにアクセスする方法を指定します。
使用可能な注釈について詳しくは、関連資料を参照してください。
サポート対象の注釈ベース Web サービス・シナリオ
以下の Web サービス・シナリオは、ツールおよび WebSphere® ランタイム環境でサポートされています。
表 1. | シナリオ |
ランタイム環境 |
コメント |
| ボトムアップ Java Bean |
- WebSphere Application
Server v6.1 (Feature Pack for Web Services インストール済み)
- WebSphere Application
Server v7.0
|
- 注釈のみを使用して、または Web サービス・ウィザードと組み合わせて実行できます。既に Bean に @javax.jws.WebService 注釈が付いている場合、このウィザードで委譲 Bean を生成する必要はないので、このウィザードの多くのフィールドは使用不可になります。WSDL ファイルの生成のみを選択することができます。
Java Bean に @javax.jws.WebService のみを追加した場合、SOAP 1.2 バインディングや MTOM などのその他のオプションを有効にするには、ウィザードを終了して、注釈を削除するかまたは注釈文書を使用して Web サービスの作成に進みます。このウィザードでは、部分的に注釈が付けられている既存の Bean に新規の注釈を付加することはできません。
|
| ボトムアップ EJB 2.x |
|
|
| ボトムアップ EJB 3.0 |
- WebSphere Application
Server v7.0
|
- 注釈および Web サービス・ウィザードの併用はできません。注釈を使用して EJB Bean をアプリケーション・サーバーへデプロイする必要があります。
|
| meet-in-the-middle Java Bean |
- WebSphere Application
Server v6.1 (Feature Pack for Web Services インストール済み)
- WebSphere Application
Server v7.0
|
- このシナリオでは、Web サービス注釈付き Java Bean を
wsdlLocation 属性を使用して WSDL 文書にマップできます。
- 注: SOAP 1.2 を使用する場合は、次のようにします。
@javax.xml.ws.BindingType (value=javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING)
以下の例のように、@WebService 注釈の wsdlLocation 属性を指定する必要があります。
@javax.jws.WebService (targetNamespace="http://p/", ..., wsdlLocation="WEB-INF/wsdl/EchoService.wsdl")
これは、
WebSphere Application Server によって動的に生成された WSDL ファイルを使用することはできず、
事前に WSDL ファイルを作成しておく必要があることを示します。代わりに、Java Bean から Web サービスを生成する際に SOAP 1.2 を使用するように選択すると WSDL ファイルが自動で生成される、Web サービス・ウィザードを使用することができます。
- 詳しくは、Java Bean および WSDL ファイルからの Web サービスの作成を参照してください。
|
| meet-in-the-middle EJB 3.0 |
- WebSphere Application
Server v7.0
|
|
例
例えば、
@WebService タグを Java ソースに埋め込んで Bean を Web サービスとして公開することができます。
@WebService
public class QuoteBean implements StockQuote {
public float getQuote(String sym) { ... }
}
@WebService 注釈によって、この Bean にあるすべての public メソッドを Web サービスとして公開するように、サーバー・ランタイム環境に指示されます。個々のメソッドまたはパラメーターに関するその他の注釈を追加して、さらにきめ細かなレベルで制御することもできます。アノテーションの使用によって、Java 成果物を Web サービスとして公開することがたいへん簡単になります。また、成果物は WSDL ファイルから起動されるいくつかのトップダウン・マッピング・ツールを使用して作成されるので、注釈は、ソース・ファイルと一緒に、メタデータを取得するための手段としてソース内および Java クラス内に含められます。