Web Services for Java EE 仕様
Web Services for Java™ Platform, Enterprise Edition (Java EE) 仕様は、Java 言語に基づいて Web サービスを実装するためのプログラミング・モデルとランタイム・アーキテクチャーを定義しています。Web Services for Java EE 仕様は、 別名 Java Specification Requirements (JSR) 109 ともいいます。 この仕様には、Web サービスを開発および実装するためのオープン・スタンダードが含まれています。
Web Services for Java EE 仕様は、Java EE テクノロジーに基づいており、Web サービスおよびクライアントのための Java API for XML Web Services (JAX-WS) および Java API for XML-based RPC (JAX-RPC) プログラミング・モデルを、スケーラブルでセキュアな環境内のアプリケーション・サーバー間で相互操作および移植を行えるような方法でサポートします。この仕様は、Web サービス記述言語 (WSDL) や SOAP など、Web サービスの業界標準に基づいており、Web サービスの開発およびデプロイメントを記述しています。
Java EE テクノロジーは、さまざまな方法で Web サービスと統合することができます。Java EE コンポーネントは、JavaBeans やエンタープライズ Bean などの Web サービスとして公開することができます。Java EE コンポーネントを Web サービスとして公開すると、Java コードで書かれたクライアント、または Java コードで書かれていない既存の Web サービス・クライアントが、これらのサービスにアクセスできるようになります。Java EE コンポーネントは、Web サービス・クライアントとしても機能することができます。
Web Services for Java EE 仕様は、Web ベースのプログラミングに望ましいプラットフォームです。その理由は、インターネットを介してシームレスに通信するための各種の言語、オペレーティング・システム、およびソフトウェアを使用できるオープン・スタンダードを提供しているからです。
Java アプリケーションが Web サービス・クライアントとして機能するためには、WSDL ファイルと Java アプリケーションとの間のマッピングが存在しなければなりません。 JAX-WS アプリケーションの場合、マッピングは、アノテーションを使用して定義されます。 オプションで、webservices.xml デプロイメント記述子を使用して、WSDL ファイルの場所を指定し、@WebServices アノテーションで定義された値をオーバーライドすることができます。 JAX-RPC アプリケーションの場合、JAX-RPC マッピング・ファイルを定義する必要があります。 WSDL ファイルとご使用の Web サービス・アプリケーションの間でのマッピングの定義について詳しくは、使用するプログラミング・モデルに応じて、「Web サービスの仕様および API」文書の JAX-WS 仕様または JAX-RPC 仕様を参照してください。
Java コンポーネントを使用して、 コンポーネントのインターフェースとバインディング情報を WSDL ファイル内に指定し、 サービス要求を受け入れるようにアプリケーション・サーバー・インフラストラクチャーを設計することにより、 Web サービスを実装できます。
包含されるこのプロセス全体は、Web Services for Java EE 仕様に基づいています。
この仕様は、Web サービスに固有の webservices.xml デプロイメント記述子を定義しています。 webservices.xml デプロイメント記述子ファイルは、Web Services for Java EE に対応しているコンテナー内でデプロイできる Web サービスのセットを定義します。
JAX-WS Web サービスの場合、webservices.xml デプロイメント記述子はオプションで使用できます。これは、アノテーションを使用して、デプロイメント記述子ファイル内に含まれるすべての情報を指定することができるためです。デプロイメント記述子ファイルを使用して、 既存の JAX-WS アノテーションの拡張またはオーバーライドを行うことができます。webservices.xml デプロイメント記述子で定義した すべての情報により、アノテーションによって指定された対応するすべての情報がオーバーライドされます。
@WebService(wsdlLocation=”http://myhost.com/location/of/the/wsdl/ExampleService.wsdl”)
また webservices.xml では、WSDL 文書に以下のように異なるファイル名が指定されます。<webservices>
<webservice-description>
<webservice-description-name>ExampleService</webservice-description-name>
<wsdl-file>META-INF/wsdl/ExampleService.wsdl</wsdl-file>
…
</webservice-description>
</webservices>
次に、デプロイメント記述子で指定された値 META-INF/wsdl/ExampleService.wsdl により、アノテーションの値がオーバーライドされます。Web サービス・デプロイメント記述子ファイルで指定された値と、@WebService および @WebServiceProvider アノテーションの属性との相関について詳しくは、Web Services for Java EE 仕様のセクション 5 を参照してください。
JAX-RPC Web サービスの場合、デプロイメントの特性を、webservices.xml デプロイメント記述子ファイルで定義する必要があります。
- ポート名
- ポート・サービス実装
- ポート・サービス・エンドポイント・インターフェース
- ポート WSDL 定義
- ポート QName
- JAX-WS Web サービスのための MTOM/XOP サポート
- JAX-WS Web サービスのためのプロトコル・バインディング
- JAX-RPC マッピング
- ハンドラー (オプション)
- サーブレット・マッピング (オプション)
サポートされる標準および仕様の完全なリストについては、Web サービス仕様書および API 文書を参照してください。