我正在使用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秒超时时间并不完全相同,但是根据您想要完成的任务,调整这两个属性通常会填写帐单.
原文地址:https://www.jb51.cc/java/122268.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。