1

CXF を使用して安静な Web サービスと対話するクライアントがあります。2.7.0 http://cxf.apache.org/javadoc/latest/org/apache/cxf/jaxrs/client/WebClient.htmlから CXF が提供する非同期モードを利用したいと考えてい ます。この機能を使用しているクライアントの良い例を実際に見つけたことはありません

以前は、このようなことをするコードがありました

Response response = webclient.get();

更新されたコード:

Future<Response> responseFuture = webclient.async().get();
// code to get future response ...

私の質問:

  • クライアントの動作はどのように変化しますか? 私の理解では、以前はクライアント要求ごとに個別のスレッドが作成されていました。単一のスレッドまたはスレッドプールを使用して複数のリクエストを実行するようになりましたか?

  • また、2 つの異なるケースでバックグラウンドで何をしているのかを監視するための最良の方法は何ですか?

4

1 に答える 1

1

はい、いいえ。

コードで行う必要があるのはそれだけです。ただし、デフォルトでは、CXF は要求ごとに専用スレッドを必要とする HttpURLConnection オブジェクトを引き続き使用します。したがって、内部では、これに CXF のスレッド プールを使用します。

ただし、CXF の非同期ベースのトランスポート ( http://cxf.apache.org/docs/asynchronous-client-http-transport.htmlを参照) を追加すると、使用されるスレッドが非常に少なく、数百の未処理のリクエストが許可されます。

于 2013-11-07T21:32:44.897 に答える