JAX WS асинхронный клиент: захват WS-Addressing 202 принято

Я должен вызвать несколько веб-сервисов, используя WS-Addressing. При вызове веб-сервиса ReplyTo устанавливается на конечную точку обратного вызова, реализованную мной.

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

<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-Addressing Reply To)

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

Спасибо.

1 ответ

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

Другие вопросы по тегам