Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带有RESTful web服务的CXF异步客户端_Java_Rest_Cxf_Jax Rs - Fatal编程技术网

Java 带有RESTful web服务的CXF异步客户端

Java 带有RESTful web服务的CXF异步客户端,java,rest,cxf,jax-rs,Java,Rest,Cxf,Jax Rs,我有一个使用CXF与restful web服务交互的客户机。我想利用CXF自2.7.0以来提供的异步模式 . 我还没有找到一个客户机使用此功能的好例子 以前我有这样的代码 Response response = webclient.get(); 更新代码: Future<Response> responseFuture = webclient.async().get(); // code to get future response ... Future-responseFutu

我有一个使用CXF与restful web服务交互的客户机。我想利用CXF自2.7.0以来提供的异步模式 . 我还没有找到一个客户机使用此功能的好例子

以前我有这样的代码

Response response = webclient.get();
更新代码:

Future<Response> responseFuture = webclient.async().get();
// code to get future response ...
Future-responseFuture=webclient.async().get();
//获取未来响应的代码。。。
我的问题是:

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

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

    • 好吧,是和否

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

      但是,您可以添加CXF的基于异步的传输(请参阅),这将允许数百个未完成的请求,使用的线程非常少。

      好的,是和否

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


      但是,您可以添加CXF的基于异步的传输(请参阅),这将允许数百个未完成的请求,使用的线程非常少。

      OK,谢谢您提供的信息。因此,我已经准备好了新代码,所需的CXF和HttpAsyncClient JAR都在我的类路径上。然而,它似乎仍然只是在幕后使用HttpURLConnection。根据文档,一旦异步客户机在类路径上运行,它就应该自动使用异步客户机。我向HttpURLConnection和HttpAsyncClient添加了断点,以尝试分析运行时使用的断点。有没有关于我在这里可能做错了什么的建议,或者指向逻辑的位置以决定使用哪种类型的连接的指针?您是否使异步工作?我认为您需要在CXF中设置异步模式,比如显式地??谢谢,谢谢你提供的信息。因此,我已经准备好了新代码,所需的CXF和HttpAsyncClient JAR都在我的类路径上。然而,它似乎仍然只是在幕后使用HttpURLConnection。根据文档,一旦异步客户机在类路径上运行,它就应该自动使用异步客户机。我向HttpURLConnection和HttpAsyncClient添加了断点,以尝试分析运行时使用的断点。有没有关于我在这里可能做错了什么的建议,或者指向逻辑的位置以决定使用哪种类型的连接的指针?您是否使异步工作?我认为您需要在CXF中设置异步模式,比如显式地??提前谢谢