java - JAX WS异步客户端: capture WS-Addressing 202 accepted

标签 java web-services wsdl jax-ws ws-addressing

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

客户端是使用 async with 从目标 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(),它将永远阻塞,因为响应被发送到我的回调 URL(WSA-Addressing Reply To)

有什么线索可以确定服务器是否成功接受了请求吗?

谢谢。

最佳答案

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

关于java - JAX WS异步客户端: capture WS-Addressing 202 accepted,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35814430/

相关文章:

java - 如何模拟 springcontext?

java - 使用 DFS 解决 8 谜游戏

java - Eclipse/GGTS 在 Mac OS X 上与 Java 7 崩溃?

javascript - 智能解析字符串构建复杂的api调用

java - 完整的 WSDL 端点 url 是什么

java - 如何在 JAX-WS 客户端中实现 SOAP 处理程序

java - 在 XSLT 中检索 HashMap 值

php - 将 SOAP XML 响应转换为 PHP 对象或数组

android - ksoap2 中的 "AndroidHttpTransport cannot be resolved to a type"错误

java - 检索单个操作的 WSDL