2016-03-05 7 views
1

Мне нужно вызвать несколько веб-сервисов, используя WS-Addressing. При вызове веб-службы ReplyTo устанавливается на конечную точку обратного вызова, реализованную мной.JAX WS async client: capture WS-Addressing 202 принят

Клиент генерируется из целевой WSDL с использованием асинхр с

<enableAsyncMapping>true</enableAsyncMapping> 

, который генерирует версию Async для каждого веб-сервиса со следующей подписью:

javax.xml.ws.Response<SampleWebServiceOutput> sampleWebService(SampleWebServiceInput input) 

При вызове sampleWebService как,

Response<SampleWebServiceOutput> response = clientWsPort.sampleWebService(input); 

если запрос будет успешным, сервер вернет 202 Accepted, однако я не могу понять, как его получить.

Если я использую response.get(), он будет блокировать навсегда, так как ответ отправляется на мой обратного вызова URL (WSA-адресация Ответить Чтобы)

Любые подсказки, как знать наверняка, если сервер успешно принял запрос?

спасибо.

ответ

0

По-видимому, ответ, возвращенный, когда вы устанавливаете другой ответ на адрес, приводит к нулевому отклику, который может объяснить, почему он висит при вызове response.get(). Рекомендованное решение - использовать что-то вроде getResponseContext(), которое вызывается из привязки.

+0

Я попытаюсь использовать getContext() ответа и посмотреть, что он дает. – sergiofbsilva