【问题标题】:Set connection time out with javax.ws.rs.client.WebTarget使用 javax.ws.rs.client.WebTarget 设置连接超时
【发布时间】:2019-03-18 19:01:58
【问题描述】:

我有一个 URL,我尝试将其连接超时设置为 10 秒。 代码 sn -p :-

WebTarget t=null;
Client c = ClientBuilder.newBuilder()
                .hostnameVerifier(<HostNameVerifier>)
                .sslContext(<SSLContext>)
                .build();
        client.register(<credentials for url>); 
        t = c.t(url);

从不同的来源,我找到了如下解决方案。

ClientConfig clientConfig = new ClientConfig();
clientConfig.property(ClientProperties.READ_TIMEOUT, 2000);
clientConfig.property(ClientProperties.CONNECT_TIMEOUT, 500);

ClientConfigClientProperties 都是 org.glassfish.jersey.client 的实用程序 包。 我有使用这个限制。

任何人都可以在这里建议如何在不使用 ClientConfig 和 ClientProperties 的情况下设置连接超时。

任何帮助将不胜感激。

【问题讨论】:

  • 谁能帮帮我?

标签: java spring jakarta-ee soap restful-url


【解决方案1】:

只需使用字符串值而不是ClientProperties 常量:

        client.property("jersey.config.client.connectTimeout", 500);
        client.property("jersey.config.client.readTimeout", 2000);

【讨论】:

  • 感谢您的信息。但这也没有帮助我。给出“线程“主”java.lang.RuntimeException:java.lang.ClassNotFoundException:org.glassfish.jersey.client.JerseyClientBuilder 中的异常”错误。那是因为没有导入球衣库,我也无法导入,因为我对此有限制。你能在这里给我建议前进的方向吗
  • 你使用什么 JAX-RS 实现?
  • 我正在使用 jax-rs 2.1 。你是这个意思吧?我的用例是验证传入的 rest url 是否可访问。如果不是,那么在这种情况下提供超时以避免 Web UI 冻结。
  • JAX-RS 是一个具有不同实现的规范。泽西岛就是其中之一。
  • 现在我正在尝试通过使用 jersey 客户端和通用 API 来实现相同的目标。但是有了这个我面临一个新的例外,比如 JerseyClientBuilder 不能被实例化。引起:java.lang.ClassNotFoundException: com.google.common.base.Function at java.net.URLClassLoader.findClass(URLClassLoader.java:382) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun .misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 12 更多你能在这里指导我吗
猜你喜欢
  • 1970-01-01
  • 2014-02-19
  • 2011-11-11
  • 2019-07-26
  • 2012-05-01
  • 2014-11-15
  • 1970-01-01
  • 1970-01-01
  • 2013-08-26
相关资源
最近更新 更多