1

我必须使用 WS-Addressing 调用几个 Web 服务。调用 web 服务时,ReplyTo 设置为我实现的回调端点。

客户端是使用异步从目标 WSDL 生成的

<enableAsyncMapping>true</enableAsyncMapping>

Async为每个 web 服务生成具有以下签名的版本:

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

调用时sampleWebService喜欢,

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

如果请求成功,服务器将返回,202 Accepted但我不知道如何获取它。

如果我使用response.get(),它将永远阻塞,因为响应被发送到我的回调 url (WSA-Addressing Reply To)

任何线索如何确定服务器是否成功接受了请求?

谢谢你。

4

1 回答 1

0

显然,当您设置不同的回复地址时返回的响应会导致空响应,这可以解释为什么当您调用response.get(). 推荐的解决方案是使用类似的东西getResponseContext(),它是从绑定中调用的。

于 2016-03-05T13:58:00.153 回答