我需要通过 SOAP Web 服务调用一个长时间运行的任务,在两端使用 JAXWS,特别是在两端使用 Apache CXF 2.6。
我看到我可以在 CXF 代码生成器中启用异步方法,它为每个操作创建两个异步方法。由于 NAT 问题,我无法使用 WS-Addressing 和回调。所以我可能想使用其他轮询方法。
我需要确保使用这种机制不会出现套接字读取超时,所以我想了解它是如何工作的。
是否在后台线程中向服务器发出 SOAP 请求,该线程保持相同的单个 HTTP 连接打开,并且 Future#isDone() 检查该线程是否已收到响应?
如果是这样,中间的代理服务器是否有可能定义自己的超时,并且如果服务器需要很长时间才能响应,则会导致错误?
其他人如何通过 SOAP 调用长时间运行的任务?