サンプル Web サービス
WebLogic Workshop には、以下のサンプル Web サービスが用意されています。これらのサンプルは samples プロジェクトにあります。このプロジェクトは、WebLogic Workshop を初めて起動したときのデフォルト プロジェクトです。
サンプルの実行手順など、各サンプルの詳細については下記のリンクをたどってください。
AccountEJB エンティティ Bean を表し、Web サービスに対してそのビジネス インタフェースを公開する EJB コントロール(AccountEJBControl.ctrl)の使用を示す Web サービスです。このサンプルは、AccountPublish.jws および AccountSubscribe.jws とは関連がありません。
メッセージを JMS トピックにパブリッシュする JMS コントロール(AccountPublishJMSControl.ctrl)の使用を示す Web サービスです。このサンプルは、AccountPublish.jws のパブリッシュ先である JMS トピックをサブスクライブする AccountSubscribe.jws と組になっています。このサンプルは、AccountEJBClient.jws とは関連がありません。
JMS トピックをサブスクライブする JMS コントロール(AccountSubscribeJMSControl.ctrl)の使用を示す Web サービスです。このサンプルは、AccountSubscribe.jws がサブスクライブする JMS トピックにパブリッシュする AccountPublish.jws と組になっています。このサンプルは、AccountEJBClient.jws とは関連がありません。
非同期がサポートされていないレガシー システム(LegacySystem.jws)に対する非同期インタフェースを示す Web サービスです。レガシー システムに対して「ポーリング(繰り返し呼び出して処理されたかどうかを調べる)」を行うことで非同期を実現します。AdvancedTimer はクライアントに対してポーリングを行い、レガシー システムが応答した場合にクライアント コールバックを呼び出します。
AdvancedTimer は、@jws:timer timeout= repeats-every= タグを使用します。
トラフィックの多いリクエストをキューに入れる @jws:message-buffer タグを示す Web サービスです。タイマー コントロールを使用すると、クライアントに対する応答の返信を遅延させることができます。応答の遅いバックエンド サービスを待機しているように見せかけて、この Web サービスからのリクエストに応答します。start メソッドがバッファされると、クライアントはリクエストの送信後すぐに処理を続けることができます。
手続き的なコードを使用して XML マッピングを実行するための、XML 用の ECMAScript 言語拡張の使用を示す Web サービスです。受信した XML ドキュメントは、異なる内部 Java データ構造に変換された後、次のメソッド呼び出しによってクライアントに返されるときに再変換され、元に戻されます。ECMAScript は、ConsolidateAddressScript.jsx ファイルにあります。ConsolidateTest.xml は、送信可能なテスト ドキュメントです。
ConsolidateAddress は、<xm:use> XML マップ タグを使用します。
Web サービスの会話インスタンスの有効期間を制御し、データの永続性を提供する @jws:conversation タグの使用を示す Web サービスです。
Conversation.jws は、非同期の HelloWorldAsync Web サービス用に同期ポーリング インタフェースを実装しています。ポーリング インタフェースは、ファイアウォールなどのセキュリティ対策が原因で、非同期のコールバックを受け付けることができないクライアントに対応する場合に必要になります。
会話では相互の関連付けも行われます。そのため、複数の同時クライアントからのリクエストが追跡され、正しいクライアントに応答が転送されます。
チュートリアル : 初めての Web サービスで開発した Investigate Web サービスに似ていますが、より詳細に開発されています。会話とサービス コントロールの使用を示します。
顧客レコードを管理することで、データベース コントロールの使用を示すサンプルです。CustomerDBClient は、CustomerDBControl.ctrl のクライアントです。これらは両方で、データベース コントロールの構築および Web サービスによるデータベース コントロールの使用を示します。CustomerDBControl.ctrl は、SQL の CREATE、DROP、INSERT、UPDATE、および SELECT の各文の使用を示します。
CTRL ファイルで定義されている JMS コントロールの使用を示す Web サービスです。CustomJMSClient は、CustomJMSControl.ctrl JMS コントロールのクライアントです。
@jws:paramater-xml および @jws:return-xml の include-java-types 属性の使用を示す Web サービスです。この属性により、不明確な場合に使用する Java タイプを明示的に指定できます。
1 つの同期メソッドを持つ、非常に単純な Web サービスです。WebLogic Workshop Web サービスを最も単純な形式で示します。
コールバックの使用を示す、単純な非同期 Web サービスです。タイマー コントロールを使用すると、応答の遅いバックエンド サービスを待機しているように見せかけて遅延を発生させ、何らかの処理を行うことができます。その後、コールバックを介してクライアントに結果を通知します。HelloWorldAsync は、Conversation.jws サンプルによって使用されますが、スタンドアロンの Web サービスでもあります。
<xm:multiple> 属性を使用する要素の不確定な長さのリストなど、XML 入力を Java オブジェクトに変換する XML マップを定義する @jws:parameter-xml タグの使用を示します。
このサンプルは、チュートリアル : 初めての Web サービスのステップ 8: クライアント アプリケーションが完了した後の Investigate Web サービスの状態を表します。
プレーヤーとそのラッキー ナンバーを格納するデータベースを使用するサンプルです。LuckyNumberDBClient は、LuckyNumber.jws Web サービスを使用して、1〜20 の範囲内でランダムな数字を生成します。その後、データベースで勝者をチェックし、引かれた数字と勝者のリスト(存在する場合)を返します。データベースは、LuckyNumberDBControl.ctrl データベース コントロールを使用して管理されます。LuckyNumberDBControl.ctrl は、データベースに PLAYERS テーブルを作成して管理し、それに対するクエリを実装します。また、SQL の CREATE、DROP、INSERT、および SELECT の各文の使用を示します。
Java オブジェクトを、Web サービスの呼び出し側に返される XML ドキュメント内の要素に変換する @jws:return-xml タグおよび暗黙の <xm:value> タグの使用を示します。
手続き的なコードを使用して XML マッピングを実行するための、XML 用の ECMAScript 言語拡張の使用を示す Web サービスです。Web サービス メソッドによって返される Java オブジェクトは、送信されるメッセージで、異なる XML 構造に変換されます。ECMAScript は、PersonScript.jsx ファイルにあります。
呼び出された Web サービスのパブリック コントラクトを遵守しながら、サービス コントロールの CTRL ファイルを変更して、1 つまたは複数のメソッドの Java シグネチャを変更する機能を示します。QuoteServiceControl.ctrl は、元々は QuoteService.jws Web サービスから生成されたものです。しかし、QuoteServiceControl.ctrl の 1 つのメソッドでパラメータが削除され、付属の XML マップではハードコード化された値に置き換えられました。そのため、送信される XML メッセージは同じでも、サービス コントロールのクライアントから見える Java シグネチャは簡素化されています。
ServiceFactoryClient.jws
コントロール ファクトリの使用を示す Web サービスです。コントロール ファクトリでは、コントロールのインスタンスの集合を Web サービスから動的に管理できます。
Web サービスの JWS ファイルでローカルに宣言されている JMS コントロールの使用を示す Web サービスです。
XML 入力を Java オブジェクトに変換する @jws:parameter-xml XML マップの単純な使用を示すサンプルです。暗黙の <xm:value> タグとして中括弧「{}」を使用します。
タイマー コントロールの使用を示す、単純な Web サービスです。@jws:timer timeout= タグを使用します。
TraderEJB ステートレス セッション Bean を表し、Web サービスに対してそのビジネス インタフェースを公開する EJB コントロール(TraderEJBControl.ctrl)の使用を示す Web サービスです。
関連トピック