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()
, который вызывается из привязки.