Клиент JAX-WS и исключение SocketTimeoutException против ConnectException - PullRequest
0 голосов
/ 04 июля 2018

Мне нужно позвонить в веб-службу, на ответ которой уходит 40 секунд. Я нахожусь в 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 секунд на ответ), я всегда получаю исключение. Какой тайм-аут мне нужно увеличить?

1 Ответ

0 голосов
/ 04 июля 2018

Почему вы хотите, чтобы время ожидания составляло 40 секунд? Есть два тайм-аута, представленные как «com.sun.xml.internal.ws.connect.timeout» и «com.sun.xml.internal.ws.request.timeout». Возможно, вы подключены к серверу, но обработка запроса занимает много времени, и в этом случае последний параметр вступит в силу. Примечание: я считаю, что эти настройки для JBoss (могу ошибаться, перепроверьте).

...