2016-03-05 29 views
1

我必須使用WS-Addressing調用多個Web服務。 當調用Web服務時,ReplyTo被設置爲由我實現的回調終端。JAX WS異步客戶端:捕獲WS-Addressing 202接受

客戶端正在使用異步目標WSDL產生具有

<enableAsyncMapping>true</enableAsyncMapping> 

其生成Async版本具有以下簽名的每個web服務:

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

當調用sampleWebService等,

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

if請求成功,服務器將返回202 Accepted但是我無法弄清楚如何得到它。

如果我使用response.get(),它會因爲響應發送到我的回調URL永久的阻塞(WSA-Addressing的迴應到)

任何線索怎麼知道,如果服務器成功地接受了請求?

謝謝。

回答

0

顯然,當您設置不同的回覆地址時,返回的響應會導致空響應,這可以解釋爲什麼當您撥打response.get()時它會掛起。 推薦的解決方案是使用類似getResponseContext()的東西,它是從綁定中調用的。

+0

我會嘗試使用Response的getContext()並查看它給出了什麼。 – sergiofbsilva