注釈を使用した Web サービスの作成

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) に基づく注釈の使用法をサポートしています。 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 クラス内に含められます。


フィードバック