gpt4 book ai didi

web-services - JAXWS 异步调用如何与轮询配合使用

转载 作者:行者123 更新时间:2023-12-04 05:09:25 24 4
gpt4 key购买 nike

我需要通过 SOAP Web 服务调用长时间运行的任务,在两端使用 JAXWS,特别是在两端使用 Apache CXF 2.6。

我看到我可以在 CXF 代码生成器中启用异步方法,它为每个操作创建两个异步方法。由于 NAT 问题,我无法使用 WS-Addressing 和回调。所以我可能想使用其他轮询方法。

我需要确保使用这种机制不会有套接字读取超时,所以我想了解它是如何工作的。

是否在后台线程中向服务器发出 SOAP 请求,该线程保持相同的单个 HTTP 连接打开,并且 Future#isDone() 检查该线程是否已收到响应?

如果是这样,中间的代理服务器是否有可能定义自己的超时,并在服务器响应时间过长时导致错误?

其他人如何通过 SOAP 调用长时间运行的任务?

最佳答案

是的,它只会不断检查连接,直到收到响应。如果客户端和服务器之间发生某些事情并且连接丢失,则将无法检索响应。

对于真正长时间运行的事情,更好的方法是将长时间运行分为两种方法。一个将接受输入并在后台线程上启动工作并仅返回某种唯一标识符的方法。第二种方法将采用该标识符并返回结果。客户端可以调用该方法来轮询服务器。这可能会长时间运行,并阻止或使用异步方法或类似方法。如果那个请求超时,它可以再次调用它。

关于web-services - JAXWS 异步调用如何与轮询配合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12722910/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com