Conversation.jws サンプル
Web サービスの会話インスタンスのライフサイクルを制御し、データの永続性を提供する @jws:conversation タグの使用を示す Web サービスです。
Conversation.jws は、非同期の HelloWorldAsync Web サービス用に同期ポーリング インタフェースを実装しています。ポーリング インタフェースは、ファイアウォールなどのセキュリティ対策が原因で、非同期のコールバックを受け付けることができないクライアントに対応する場合に必要になります。
会話では相互の関連付けも行われます。そのため、複数の同時クライアントからのリクエストが追跡され、正しいクライアントに応答が転送されます。
サービス コントロールの使用
JwsContext インタフェースの使用
会話の使用
ポーリング
このサンプルは、samples WebLogic Workshop プロジェクトの async フォルダにあります。ファイル システムでの場所は次のとおりです。
BEA_HOME\weblogic700\samples\workshop\applications\samples\async\Conversation.jws
この Web サービスを実行するには
適切なドメインにある WebLogic Server を起動します。
Microsoft Windows システムでは、[スタート] メニューから次のように選択します。
[BEA WebLogic Platform 7.0|WebLogic Workshop|WebLogic Workshop Examples|Start Examples Server]
Linux システムまたは Solaris システムでは、次のスクリプトを実行します。
BEA_HOME/weblogic700/samples/workshop/startWebLogic.sh
WebLogic Workshop でサービスを開いて [開始] を選択するか、またはブラウザのアドレス バーに「http://localhost:7001/samples/async/Conversation.jws」と入力して、サービスを起動します。適切なドメインにある WebLogic Server がこのマシン上で実行されている場合は、ここをクリックしてサンプルを実行することもできます。
必要な場合は、テスト ビューの [Test Form] タブに移動します。
startRequest メソッドを呼び出して、新しい会話インスタンスを作成し、模擬レガシー システム上で処理を呼び出します。
会話 ID([Message Log] で各会話の最上部に表示される桁数の多い数字)をクリックし、会話の継続メソッドおよび終了メソッドにアクセスします。
Conversation.jws からの helloAsync.HelloAsync の呼び出しに注目してください。helloAsync はサービス コントロールのインスタンスであり、HelloAsync はそのメソッドの 1 つです。
もう一度、会話 ID をクリックして、会話の継続メソッドおよび終了メソッドにアクセスします。
getRequestStatus メソッドを呼び出して、リクエストが完了しているかどうかを確認します。helloAsync_onHelloResult コールバックがサービス コントロールから到着する前にこの確認を行うと、バックエンド システムがまだ応答しないという応答が返されます。
helloAsync_onHelloResult コールバックが到着した後に getRequestStatus を呼び出すと、getRequestStatus によって結果が返されます。
もう一度、会話 ID をクリックして、会話の継続メソッドおよび終了メソッドにアクセスします。
terminateRequest を呼び出して、会話を終了します。これにより、Web サービスのこの会話インスタンスに関連付けられたリソースが解放されます。
[Message Log] でログ エントリを選択して、各会話に関連したメッセージ トラフィックを確認します。