第12章 JAX-WS Web サービス

12.1. JAX-WS Web サービスについて

Java API for XML Web Services (JAX-WS) は Java Enterprise Edition (EE) プラットフォームに含まれる API で、Web サービスの作成に使用されます。Web サービスとは、主に XML や他の構造化されたテキスト形式での情報交換など、ネットワーク上で通信を行うためのアプリケーションのことです。Web サービスはプラットフォームから独立しています。通常の JAX-WS アプリケーションはクライアント/サーバーモデルを使用します。サーバーコンポーネントは Web サービスエンドポイントと呼ばれます。
JAX-WS には JAX-RS と呼ばれるプロトコルを使用する小型で単純な Web サービス向けものがあります。JAX-RS は Representational State Transfer ( REST) のプロトコルです。JAX-RS アプリケーションは通常ライトウェイトで HTTP プロトコルのみに依存して通信を行います。WS-NotificationWS-AddressingWS-PolicyWS-SecurityWS-Trust などの Web サービス指向プロトコルは JAX-WS によってサポートが容易になります。これらのプロトコルはメッセージアーキテクチャーやメッセージ形式を定義する シンプルオブジェクトアクセスプロトコル (SOAP) と呼ばれる特殊な XML 言語を使用して通信します。
JAX-WS Web サービスには提供する操作の機械可読な記述も含まれます。これは特殊な XML 文書型である Web サービス記述言語 (WSDL) で書かれています。
Web サービスエンドポイントは WebService インターフェースと WebMethod インターフェースを実装するクラスによって構成されます。
Web サービスクライアントは、WSDL 定義によって生成されるスタブと呼ばれる複数のクラスに依存するクライアントによって構成されます。
JAX-WS Web サービスでは、正式なコントラクトが確立され、Web サービスが提供するインターフェースが記述されます。通常、コントラクトは WSDL で書かれますが、SOAP メッセージで書くことも可能です。通常、Web サービスのアーキテクチャーはトランザクション、セキュリティー、メッセージング、コーディネーションなどのビジネス要件に対応します。JBoss Enterprise Application Platform はこれらビジネスの懸念を処理するメカニズムを提供します。
Web サービス記述言語 (WSDL) は Web サービスや Web サービスへのアクセス方法を記述するために使用される XML ベースの言語です。Web サービス自体は Java や他のプログラミング言語で書かれます。WSDL 定義はインターフェースへの参照、ポート定義、ネットワーク上で他の Web サービスが対話する方法の指示によって構成されます。Web サービスはシンプルオブジェクトアクセスプロトコル (SOAP)を用いて通信します。このタイプの Web サービスは Representative State Transfer (REST) の設計原理を用いて構築された RESTful Web サービス とは対照的です。RESTful Web サービスでは WSDL や SOAP を使用する必要はありませんが、他のサービスと対話する方法は HTTP プロトコルの構造に依存して定義されます。
JBoss Enterprise Application Platform には JAX-WS Web サービスエンドポイントのデプロイメントに対するサポートが含まれています。このサポートは JBossWS によって提供されます。エンドポイントの設定やハンドラーチェーン、ハンドラーなどの Web サービスサブシステムの設定は webservices サブシステムより提供されます。
作業例

JBoss Enterprise Application Platform 6 のクイックスタートには完全に機能する JAX-WS Web サービスアプリケーションが複数含まれています。これらの例には以下が含まれています。

  • wsat-simple
  • wsba-coordinator-completion-simple
  • wsba-participant-completion-simple