この章では、Java API for XML-based Web services (JAX-WS)を使用するWebLogic Webサービスの開発方法の概要を説明します。JAX-WSは、Java Webサービスのコーディング、構築、デプロイメントに使用する標準ベースのAPIです。
この章の内容は次のとおりです:
WebLogic WebサービスはJSR 109: Implementing Enterprise Web Services仕様(http://www.jcp.org/en/jsr/detail?id=109
)に従って実装されています。この仕様では、JavaでWebサービスを実装するための標準のJava EE実行時アーキテクチャを定義しています。また、標準Java EE Webサービスのパッケージ化形式、デプロイメント・モデル、実行時サービスについても記述されており、そのすべてをWebLogic Webサービスで実装しています。
以降の項で説明する内容は、次のとおりです。
JSR 109: Implementing Enterprise Web Services仕様(http://www.jcp.org/en/jsr/detail?id=109
)では、Java EE Webサービスは次のいずれかのコンポーネントによって実装するものと定められています。
Webコンテナ内で動作するJavaクラス
EJBコンテナ内で動作するステートレスまたはシングルトン・セッションEJB
JavaクラスまたはEJBのコードは、Webサービスのビジネス・ロジックを実装します。生のJavaクラスまたはEJBを直接コーディングするかわりに、JWSアノテーション・プログラミング・モデルを使用することをお薦めします。それによって、WebLogic Webサービスのプログラミングがより簡単になります。
このプログラミング・モデルでは、JDK 6.0メタデータ・アノテーション機能を利用しています。アノテーション付きのJavaファイルを作成し、Antタスクを使用してそのファイルをJavaクラスにコンパイルし、関連するアーティファクトをすべて生成します。アノテーション付きのJava Webサービス(JWS)ファイルは、Webサービスの中核部分です。このファイルにはWebサービスの動作を決定するJavaコードが含まれています。JWSファイルは、アノテーションを使用してWebサービスの形式や特性を指定した、通常のJavaクラス・ファイルです。JWSファイルで使用できるJWSアノテーションには、Web Services Metadata for the Java Platform仕様(http://www.jcp.org/en/jsr/detail?id=181
)で定義された標準のアノテーションと、その他の標準またはWebLogic固有のアノテーションがあり、作成するWebサービスのタイプに応じて使い分けます。
基本的なWebLogic Webサービスをコーディングしたら、追加の高度な機能をプログラミングおよび構成できます。たとえば、SOAPメッセージのデジタル署名や暗号化を指定できます(http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wss
のWS-Security仕様で規定)。このようなWebLogic Webサービスの高度な機能は、WS-Policyファイルを使用して構成します。WS-PolicyファイルはWS-Policy仕様に準拠するXMLファイルです。セキュリティや信頼性のあるメッセージングの構成を記述するための、セキュリティに固有のXML要素やWebサービスの信頼性のあるメッセージングに固有のXML要素が含まれています。
Webサービスの開発には、ボトムアップとトップダウンという2つのアプローチがあります。次の項でそれぞれのアプローチについて説明します。
ボトムアップ・アプローチでは、JWSファイルを最初から開発します。JWSファイルを作成したら、jwsc
WebLogic WebサービスのAntタスクを使用して、JWSファイルをコンパイルします。http://www.jcp.org/en/jsr/detail?id=109
で「JSR 109: Implementing Enterprise Web Services」仕様を参照してください。
jwsc
Antタスクでは、JWSファイルは常にプレーンJavaクラスにコンパイルされます。ステートレスまたはシングルトン・セッションEJBが実装されるのは、JWSファイルにステートレスまたはシングルトン・セッションEJBを実装している場合のみです。jwsc
Antタスクは、Webサービスの補助的なアーティファクトもすべて生成し、アーカイブ・ファイルにすべてをパッケージ化して、WebLogic Serverにデプロイできるエンタープライズ・アプリケーションを作成します。
jwsc
Antタスクのデフォルトでは、Webサービスはすべての標準WARアーティファクトとともに標準のWebアプリケーションWARファイルにパッケージ化されます。ただし、このWARファイルには、それがWebサービスでもあることを示す追加のアーティファクトが含まれています。追加のアーティファクトには、デプロイメント記述子ファイル、Webサービスのパブリック規約を記述したWSDLファイルなどがあります。jwsc
を複数のJWSファイルに対して実行する場合は、jwsc
が複数のWebサービスを1つのWARファイルにパッケージ化するか、Webサービスごとに別々のWARファイルにパッケージ化するかを選択できます。どちらを選択した場合でも、jwsc
によって1つのエンタープライズ・アプリケーションが生成されます。
JWSファイルにステートレスまたはシングルトン・セッションEJBを実装した場合、jwsc
Antタスクは、ejb-jar.xml
およびweblogic-ejb.jar.xml
デプロイメント記述子ファイルなどの通常のアーティファクトをすべて含めて、Webサービスを標準のEJB JARにパッケージ化します。EJB JARファイルには、前述のような、Webサービスであることを示すWebサービスに固有の追加のアーティファクトも含まれています。同様に、複数のJWSファイルを1つのEJB JARファイルにパッケージ化するか、複数のEJB JARファイルにパッケージ化するかを選択できます。
または、build.xml
ファイルのjwsc
Antタスクを更新して、module
子要素のejbWsInWar
属性を有効にすることにより、セッションEJBがWebアプリケーションのWARファイルとしてパッケージ化されるように指定できます。詳細は、『Oracle WebLogic Server WebLogic Webサービス・リファレンス』の「jwsc」を参照してください。
ボトムアップ・アプローチの詳細は、「Javaから開始するWebLogic Webサービスの開発: 主な手順」を参照してください。
トップダウン・アプローチでは、WSDLファイルからWebサービスを作成します。wsdlc
Antタスクを使用して、WSDLファイルで記述されたWebサービスの部分的な実装を生成することができます。JWSサービス・エンドポイント・インタフェース(SEI)、途中まで作成済みのJWSクラス・ファイル、XMLスキーマ・データ型を表すJavaBeanなどが、wsdlc
Antタスクによって出力ディレクトリ内に生成されます。
wsdlc
Antタスクを実行(通常は1回のみ)したら、メソッドをビジネス要件どおりに実行するためにそのメソッドにJavaコードを追加するなどして、生成されたJWS実装ファイルを更新します。wsdlc
Antタスクは、WSDLファイルを基にWebサービスの形式を認識していますが、そのWebサービスをどのように実行するかについては認識していないので、最初は生成されたJWS実装ファイルにビジネス・ロジックは含まれていません。
wsdlc
AntタスクはJWS SEIとデータ・バインディング・アーティファクトを一緒にJARファイルにパッケージ化します。このJARファイルを後でjwsc
Antタスクに指定します。このJARファイルを更新する必要はありません。更新するファイルはJWS実装クラスのみです。
トップダウン・アプローチの詳細は、「WSDLファイルから開始するWebLogic Webサービスの開発: 主な手順」を参照してください。
次の表に、WebLogic Serverを使用したJAX-WS Webサービスおよびクライアントの開発、パッケージ化とデプロイ、呼出しおよび管理における一般的なタスクのロードマップを示します。
表1-1 JAX-WS Webサービスを実装するためのロードマップ
章 | 内容 |
---|---|
|
WebLogic開発環境で基本的なJAX-WS Webサービスを開発します。Webサービスを実装するJWSファイルをプログラミングし、Java Architecture for XML Binding (JAXB)データ・バインディングを使用します。 |
第III部「基本的なJAX-WS Webサービス・クライアントの開発」 |
JAX-WSを使用してWebLogic Webサービス・クライアントを開発し、ベスト・プラクティスを適用します。 |
|
JAX-WSを使用してWebLogic Webサービスの高度な機能を開発します。高度な機能には、非同期クライアント、信頼性のあるメッセージング、原子性トランザクションなどが含まれます。Webサービスのテストおよび監視を行います。 |
|
Webサービスの信頼性のあるメッセージングおよび接続作成に対するあらかじめパッケージ化されたWS-Policyファイルの使用、信頼性のあるバッチ・メッセージングの使用、およびJAX-RPC WebサービスおよびクライアントのJAX-WSへの移行を行います。 |
注意: Oracle WebLogic ServerのJAX-WS実装は、JAX-WS参照実装(RI)から拡張されて、Glassfish Communityによって開発されます( また、JAX-WS RIにはGlassfishコントリビュータによって提供された様々な拡張があります。特に記載しないかぎり、JAX-WS RI拡張はOracle WebLogic Serverでの使用についてはサポートされません。 |
WebLogic Webサービスの概要、規格、サンプルおよび関連ドキュメントは、『Oracle WebLogic Server WebLogic Webサービスの理解』を参照してください。WebLogic Webサービスのセキュリティについては、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』および『Oracle WebLogic Server WebLogic Webサービスの保護』を参照してください。