【问题标题】:Rest Client Timeout - Implementation specific?休息客户端超时 - 特定于实现?
【发布时间】:2014-07-11 09:52:04
【问题描述】:

我正在使用 Wildfly,并开始编写一些客户端来连接到其他后端。现在我想为我的存根设置一些超时,以避免我的应用程序性能因后端缓慢或无响应而受到影响。

连接工作得很好,但是当我想设置超时时,我意识到我必须回退到客户端实现,所以我使用了 resteasy(在 Wildfly afaik 中使用)。

    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-client</artifactId>
        <version>3.0.8.Final</version>
        <scope>provided</scope>
    </dependency> 

真的没有标准的方法来实现吗? resteasy 文档很短。有没有人有一个很好的来源,里面有设置超时的例子?

问候 米

PS:

    Client client = ClientBuilder.newClient();
    Builder request = client.target(ADRESS_BALANCE).request();
    return request.get(BigInteger.class);

【问题讨论】:

  • 向我们展示使用客户端的代码。
  • ATM 很简单。我删除了 LoggingHandler、Errorhandling 和 Adress 以获得更好的概览。

标签: rest wildfly


【解决方案1】:

RestEasy 设置 socketTimeout 的方法:

    ResteasyClientBuilder builder = (ResteasyClientBuilder) ClientBuilder.newBuilder();
    builder.socketTimeout(60, TimeUnit.SECONDS);

如果您想使用标准方式,请查看answer

【讨论】:

  • 已经检查了这个答案。一个是 Jersey 特定的,Future Method 不适用于 Socket 超时。在最坏的情况下,Socket 会挂起,未来的线程也会挂起。会和你的答案一起去。非常感谢!
猜你喜欢
  • 2011-07-07
  • 2014-04-18
  • 2016-12-14
  • 1970-01-01
  • 1970-01-01
  • 2014-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多