[英]Timeout on java web services clients
我们的工作团队选择使用 NetBeans 7.1.2 提供的所有工具来开发 Web 服务。
不幸的是,我们的网络服务太不稳定,而且很多时候离线。 这是我们现在无法解决的。 我们的决定是在我们的客户中实施超时。 但是我们没有找到任何关于它的选项或文档。
有没有办法让客户端在服务需要(例如,5 秒)返回答案时抛出异常? 所以我们不能捕获这个异常并处理视图的流。
我问是因为有办法用线程和时间计数器来实现它,但很明显其他程序员已经遇到了同样的问题。
顺便说一下,我们正在使用 JAX-WS。
非常感谢。
使用 java.util.concurrent 包类。 例如,您可以使用超时来执行 Future 实例: future.get(5, TimeUnit.SECONDS)
,如果它除了 TimeoutException ,您可以根据需要做出反应:
Future<String> future = executor.submit(new Callable<String>() {
public String call() {
return webService.executeServiceMethod();
}
});
try {
String result = future.get(5, TimeUnit.SECONDS);
processResult(result);
} catch (TimeoutException ex) {
displayMessageToUserOrExecuteAgain();
}
Web 服务客户端可以配置超时,请参阅此https://community.jboss.org/thread/156015 如何在 jboss 上以编程方式设置 jax-ws 客户端请求超时?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.