我有一个客户端使用CXF与一个宁静的Web服务进行交互。我想利用自2.7.0以来CXF提供的异步模式 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 ...
我的问题:
这就是我需要做的以及客户行为将如何变化?我的理解是,以前它会为每个客户端请求创建一个单独的线程。现在它将使用单个线程或线程池执行多个请求?
另外,在两种不同的情况下,我最好的方法是监控后台正在做什么?
答案 0 :(得分:1)
嗯,是的,没有。
这就是你需要在代码中做的所有事情,是的。但是,默认情况下,CXF仍将使用HttpURLConnection对象,该对象需要每个请求一个专用线程。因此,在封面下,它将使用CXF的线程池。
但是,您可以添加CXF的基于异步的传输(请参阅http://cxf.apache.org/docs/asynchronous-client-http-transport.html),这将允许使用极少数线程的数百个未完成请求。