java Web服务客户端超时

时间:2012-11-09 19:10:32

标签: java web-services jax-ws

我们的团队选择使用NetBeans 7.1.2提供的所有工具开发Web服务。

不幸的是,我们的网络服务太不稳定,很多时候都处于脱机状态。这是我们现在无法解决的问题。我们的决定是在我们的客户中实施超时。但是我们没有找到任何关于它的选项或文档。

有没有办法让客户在服务需要时抛出异常,例如5秒钟才能返回答案?因此,我们无法捕捉此异常并对待视图的流程。

我问,因为有办法用线程和时间计数器来实现它,但很明显其他程序员已经遇到了同样的问题。

顺便说一句,我们正在使用JAX-WS。

非常感谢。

2 个答案:

答案 0 :(得分:2)

使用java.util.concurrent包类。例如,您可以使用timeout:future.get(5, TimeUnit.SECONDS)执行Future实例,如果它超出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();
}

答案 1 :(得分:0)