我必须使用WS-Addressing调用几个Web服务。 在调用Web服务时,ReplyTo被设置为由我实现的回调端点。
使用与
的异步从目标WSDL生成客户端<enableAsyncMapping>true</enableAsyncMapping>
使用以下签名为每个Web服务生成Async
版本:
javax.xml.ws.Response<SampleWebServiceOutput> sampleWebService(SampleWebServiceInput input)
调用sampleWebService
时,
Response<SampleWebServiceOutput> response = clientWsPort.sampleWebService(input);
如果请求成功,服务器将返回202 Accepted
但是我无法弄清楚如何获取它。
如果我使用response.get()
,它将永远阻止,因为响应被发送到我的回调网址(WSA-Addressing Reply To)
任何线索如何确定服务器是否成功接受了请求?
谢谢。
答案 0 :(得分:0)
显然,当您设置不同的回复地址时返回的响应会导致空响应,这可以解释为什么在您调用response.get()
时它会挂起。
建议的解决方案是使用getResponseContext()
之类的东西,这是从绑定中调用的。