1

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

不幸的是,我们的网络服务太不稳定而且经常离线。这是我们现在无法解决的问题。我们的决定是在我们的客户中实施超时。但是我们没有找到任何关于它的选项或文档。

有没有办法让客户端在服务需要(例如,5 秒)返回答案时抛出异常?所以我们无法捕捉到这个异常并处理视图的流程。

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

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

非常感谢。

4

2 回答 2

2

Use java.util.concurrent package classes. For example, you can execute Future instance with timeout: future.get(5, TimeUnit.SECONDS), and if it excepts with TimeoutException, you can react as you want:

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();
}
于 2012-11-09T19:33:41.960 回答
0

Web 服务客户端可以配置超时,请参阅此https://community.jboss.org/thread/156015 如何在 jboss 上以编程方式设置 jax-ws 客户端请求超时?

于 2012-11-10T03:35:20.263 回答