【问题标题】:JAX-WS client and SocketTimeoutException vs ConnectExceptionJAX-WS 客户端和 SocketTimeoutException 与 ConnectException
【发布时间】:2018-07-04 13:59:26
【问题描述】:

我必须调用一个需要 40 秒才能响应的 Web 服务。我在 JBoss-EAP 6.4 中,我使用以下代码:

IService svc = service.getBasicHttpBindingIService();
[...]
((BindingProvider) svc).getRequestContext().put("com.sun.xml.ws.connect.timeout",timeout)
[...]
svc.processMessage(req);

当超时时间小于 20000(20 秒)时,我得到了预期的异常:

HTTP transport error: java.net.SocketTimeoutException: connect timed out

如果超时大于 20000,我会在 20 秒后得到另一个例外:

HTTP transport error: java.net.ConnectException: Connection timed out: connect

所以,我无法从服务器获得响应(40 秒响应),我总是得到异常。我必须增加什么样的超时时间?

【问题讨论】:

    标签: java jboss jax-ws


    【解决方案1】:

    为什么您希望超时为 40 秒? “com.sun.xml.internal.ws.connect.timeout”和“com.sun.xml.internal.ws.request.timeout”代表了两个超时。您可能已经连接到服务器,但请求需要很长时间才能处理,在这种情况下,后一种设置将生效。注意:我相信这些设置是针对 JBoss 的(我可能是错的,请交叉检查)。

    【讨论】:

    • 我需要超过 40 秒的超时时间,因为服务需要 40 秒才能回复。我尝试了所有这些设置,但它不起作用,我总是得到 ConnectException:javax.xml.ws.client.connectionTimeout,javax.xml.ws.client.receiveTimeout,javax.xml.ws.connect.timeout,com .sun.xml.internal.ws.request.timeout, com.sun.xml.internal.ws.connect.timeout, com.sun.xml.ws.request.timeout, org.jboss.ws.timeout
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-09
    • 1970-01-01
    • 2012-09-25
    • 2010-12-12
    • 1970-01-01
    相关资源
    最近更新 更多