java - Java Web 服务客户端超时

标签 java web-services jax-ws

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

不幸的是,我们的网络服务太不稳定,很多时候都离线。这是我们现在无法解决的事情。我们的决定是在我们的客户中实现超时。但我们没有找到任何有关它的选项或文档。

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

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

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

非常感谢。

最佳答案

使用java.util.concurrent包类。例如,您可以执行带有超时的 Future 实例: future.get(5, TimeUnit.SECONDS),如果它抛出 TimeoutException,您可以根据需要使用react:

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();
}

关于java - Java Web 服务客户端超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13314395/

相关文章:

c# - Exchange Web 服务托管 API : Accessing other users items

java - 将具有不同变量的 ArrayList 写入 .txt 文件

java - 如果没有显式类型转换,语言可以是 "complete"吗?

web-services - 使用 CXF 通过 SSL 保护 Web 服务通信

c# - EndpointNotFoundException - 404 - 通过 Visual Studio 在 IIS 中通过 HTTPS 托管 WCF 服务

java - JAX-WS HashMap 和 .NET 字典的互操作性

java - Tomcat:无法解析运行时描述符

java - 在 WebLogic 中运行的 JAX-WS 客户端中,PasswordDigest 身份验证失败

java - 我可以使用正则表达式或其他方式更快地执行此操作吗?

java - 整合Spring Boot和Reactor-Kafka的KafkaReceiver