我必须调用一个需要 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 秒响应),我总是得到异常。我必须增加什么样的超时时间?