加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 从客户端超时的webservice调用

发布时间:2020-12-14 05:30:51 所属栏目:Java 来源:网络整理
导读:我正在使用RestEasy Client调用Webservice.一个要求是如果运行时间超过5秒,则中止/超时呼叫.如何使用RestEasy Client实现此目的?我只看到服务器端超时,即如果在一段时间内没有满足,Rest Easy websevice将超时请求. 解决方法 RESTEasy客户端通常使用Apache H
我正在使用RestEasy Client调用Webservice.一个要求是如果运行时间超过5秒,则中止/超时呼叫.如何使用RestEasy Client实现此目的?我只看到服务器端超时,即如果在一段时间内没有满足,Rest Easy websevice将超时请求.

解决方法

RESTEasy客户端通常使用Apache HttpClient来处理网络会话.

您可以使用自己的自定义超时参数覆盖HttpClient属性:

DefaultHttpClient httpClient = new DefaultHttpClient();
HttpParams params = httpClient.getParams();
HttpConnectionParams.setConnectionTimeout(params,connectionTimeoutMillis);
HttpConnectionParams.setSoTimeout(params,socketTimeoutMillis);

第一个参数允许您指定建立初始连接的超时值,第二个允许您指定套接字在没有数据发送的情况下等待的最长时间.

您可以使用修改后的HttpClient来构建您的ClientExecutor:

ClientExecutor executor = new ApacheHttpClient4Executor(httpClient);

可以依次使用它来构建一个ClientRequest对象.或者您可以将其注入RestClientProxyFactoryBean,如果您使用RESTEasy的Spring配置.

这与绝对的5秒超时时间并不完全相同,但是根据您想要完成的任务,调整这两个属性通常会填写帐单.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读