第16章 JAX-WS Web Services
16.1. JAX-WSWeb サービスについて
XMLWeb サービス用の JavaAPI(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 プロトコル自体のみに依存します。JAX-WS を使用すると、次のようなさまざまな Web サービス指向のプロトコルを簡単にサポートできます。
WS-Notification
、WS-Addressing
、WS-Policy
、WS-Security
、とWS-Trust
。これらは、メッセージアーキテクチャーとメッセージ形式を定義する Simple Object Access Protocol (SOAP) と呼ばれる特殊な XML 言語を使用して通信します。
JAX-WS Web サービスには、特殊な XML ドキュメントタイプである Web サービス記述言語 (WSDL) で記述された、マシンで読み取り可能な操作の記述も含まれています。
Web サービスエンドポイントは、実装するクラスで設定されます
WebService
とWebMethod
インターフェイス。
Web サービスクライアントは、WSDL 定義から生成される スタブ と呼ばれるいくつかのクラスに依存するクライアントで設定されます。JBoss EAP 6 には、WSDL からクラスを生成するためのツールが含まれています。
JAX-WS Web サービスでは、Web サービスが提供するインターフェイスを記述するための正式な契約が確立されます。コントラクトは通常 WSDL で記述されますが、SOAP メッセージで記述される場合もあります。Web サービスのアーキテクチャーは通常、トランザクション、セキュリティー、メッセージング、調整などのビジネス要件に対応します。JBoss EAP 6 は、これらのビジネス上の懸念を処理するためのメカニズムを提供します。
Web サービス記述言語 (WSDL) は、Web サービスとそのアクセス方法を記述するために使用される XML ベースの言語です。Web サービス自体は、Java または別のプログラミング言語で記述されています。WSDL 定義は、インターフェイスへの参照、ポート定義、および他の Web サービスがネットワークを介して WSDL と対話する方法に関する指示で設定されています。Web サービスは、Simple Object Access Protocol (SOAP) を使用して相互に通信します。このタイプの Web サービスは、Representative State Transfer (REST) 設計原則を使用して構築された RESTfulWeb サービスとは対照的です。これらの RESTfulWeb サービスは WSDL または SOAP の使用を必要としませんが、他のサービスがそれらとどのように相互作用するかを定義するために HTTP プロトコル自体の構造に依存しています。
JBoss EAP 6 には JAX-WS Web Service エンドポイントデプロイのサポートが含まれています。このサポートは JBossWS によって提供されます。エンドポイント設定、ハンドラーチェーン、ハンドラーなどの Web サービスサブシステムの設定は、Web
サービス
サブシステムを介して提供されます。
実例
JBoss EAP クイックスタートには、完全に機能する JAX-WSWeb サービスアプリケーションがいくつか含まれています。これらの例は次のとおりです。
- wsat-simple
- wsba-coordinator-completion-simple
- wsba-participant-completion-simple