0

Web レイヤーで処理する必要がある非同期 Web サービス ペアがあります。クエリ リクエストをサービスに送信する「リクエスト」サービス クライアントを作成しました。クライアントは、サーバーがメッセージを正常に受信したことを示す http '200' を受け取ります。

次に、応答を受信する Camel/CXF Web サービスである別の応答リスナーがあります。WS-Addressing メッセージ ID を使用して、要求と応答を関連付けています。

私は今、これを Web レイヤーで処理する任務を負っています。ユーザーがフォームに記入し、送信をクリックして、Web サービスを呼び出してほしいと思います。次に、CXF Web サービス リスナーが応答を受け取り、メッセージ ID を確認して、それを Web レイヤーに返します。

同期サービスでは、これを行うのは非常に簡単です。ただし、非同期 Web サービスのペアでは、どこから始めればよいかわかりません。ポーリング アプローチを使用して、Web サービスを呼び出し、メッセージ ID をマップに書き込み、マップをポーリングして、Web リスナーが応答をマップに書き込むのを待ちます。ただし、これをサポートするフレームワークがあると思います。

これは正しい方向だと思うので、Spring MVC と JQuery を調査していますが、初心者向けの適切なリソースを見つけるのに問題があります。

誰にもアイデアはありますか?

ありがとう、ヨゲッシュ

4

1 に答える 1

0

1 つのアプローチは、アウトバウンド Web サービスを呼び出す Spring MVC コントローラーを作成し、インバウンド Web サービス (つまり、応答) が受信されるまで待機することです。これは、着信サービスを待っている間スレッドを一時停止し、その後スレッドを再開することで実現できます。これが行われている間、ウェブサイトに何らかのスピナーを表示できます。したがって、ブラウザーの観点からは、1 つの要求と応答のように見えます。

ただし、Web サイトのトラフィックによっては、インバウンド サービスを待機している間に 1 つの Web コンテナー スレッドが使用されるため、これは非効率的なアプローチになる可能性があります。Web サイトのトラフィックが多く、インバウンド要求とアウトバウンド要求の間の遅延が大きい場合、空きスレッドがすぐに不足してサイトがクラッシュする可能性があります。

于 2013-02-01T04:06:00.390 に答える