WCF回调:它可以与Java互操作吗?

m-y*_*m-y 5 wcf interop wsdl web-services callback

目前我以"正常"的方式实现我的所有web服务...也就是说,我在Eclipse中创建一个WSDL文件,然后使用WSCF.blue(一个visual studio扩展)来自动生成必要的代码,它是回复/请求.但是我希望改为使用回调,所以我可以让我的服务成为"推送"服务.

在我开始重新修改我的应用程序之前,我想知道它的互操作性.如果我使用回调(WCF),我的Java客户端是否仍然可以使用它?

哦,我想我真的应该问......它是否可以与Java相媲美?以防万一...

Lad*_*nka 3

不可以WSDualHttpBinding,并且CompositeDuplexBindingElement不能与Java互操作。

编辑:

正如 @x0n 所指出的,我的答案中引用的原始博客文章并非 100% 正确。有一篇较新的博客文章描述了如何实现互操作性的方法。据我了解,该方法类似于使用通过 WS-Addressing 关联的异步响应服务(WCF 在正常处理中不支持此交换模型)。WsDualHttpBinding使用一些附加功能,例如 WS-ReliableMessaging,它还使服务有状态。

我不确定所描述的方法是否适用于所有情况,因为它仍然讨论单向消息,但 WCF 中的双工通信可以在服务和回调合约中使用单向和双向消息交换模式。

  • 这里再次提出一个老问题,但实际上,wsdualhttpbinding _binding_与java堆栈兼容(我已经测试了metro),但callbackcontract部分不是(servicecontract上的声明)。这是一个微妙的区别。您可以使用该绑定,但在 java 端,您必须使用消息处理程序挖掘 ws-addressing 回复标头并对其进行操作。 (3认同)