1

我有一个使用 CXF 与宁静的 Web 服务交互的客户端。我想利用 CXF 自 2.7.0 http://cxf.apache.org/javadoc/latest/org/apache/cxf/jaxrs/client/WebClient.html以来提供的异步模式。我还没有真正找到使用此功能的客户端的好示例

以前我有做这样的事情的代码

Response response = webclient.get();

更新代码:

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

我的问题:

  • 这就是我需要做的所有事情吗?客户的行为将如何改变?我的理解是,以前它会为每个客户端请求创建一个单独的线程。现在它将使用单个线程或线程池执行多个请求?

  • 另外,在两种不同情况下,我监控它在后台做什么的最佳方式是什么?

4

1 回答 1

1

嗯,是的,也不是。

这就是您在代码中需要做的所有事情,是的。但是,默认情况下,CXF 仍将使用 HttpURLConnection 对象,每个请求都需要一个专用线程。因此,在幕后,它将为此使用 CXF 的线程池。

但是,您可以添加 CXF 的基于异步的传输(请参阅http://cxf.apache.org/docs/asynchronous-client-http-transport.html),这将允许使用很少的线程来处理数百个未完成的请求。

于 2013-11-07T21:32:44.897 回答