6

我有一个 Delphi 企业应用程序,它充当 Java 后端(SOAP、Axis2)的客户端。我的一些请求需要不确定或特别长的时间才能完成,我想为 SOAP 请求实现一个长轮询解决方案。

据我所知,我通常会为此使用 WS-Addressing。然而,Delphi SOAP 客户端 (WCF) 似乎没有实现 WS-Addressing。

我被锁定在 Java 和 Delphi 中。我使用 Axis 2 组件,例如生命周期,但我可以转换到另一个 Web 服务引擎。我控制服务器端和客户端。

在 Delphi 和 Java 中实现长轮询有哪些选择?

4

1 回答 1

1

您说 Java 已经在服务器端使用,并且您在那里被锁定在 Java 中(如果我理解正确的话)。

在这种情况下,我将首先尝试使用 Java EE 的任何最先进的 SOAP 实现来实现Java客户端原型作为“概念验证”。这条建议背后的原因是,它可以让您亲身体验 Java 端(以及一般的 Web 服务)实现异步处理的不同选项。

将这个概念证明移植到 Delphi 将是第二步。


同样在做了一些研究之后,我看不到任何对使用 SOAP 进行长轮询的特定支持(通过 WS-Adressing 或其他方式)的任何参考。

但是,“异步 SOAP”处理是处理自 SOAP 1.2 以来长时间运行的过程的常用方法。例如,它在 JBoss 中受支持 - (带有 JBoss WS 的异步 Web 服务)。

也许您也可以考虑使用消息代理的不同架构。这称为基于 JMS 的 SOAP。Delphi 有免费和商业客户端,它们允许从 JMS 系统接收 SOAP 响应。

于 2014-10-04T09:54:16.830 回答