2010-10-12 20 views
5

目前我以“正常”的方式实现我所有的Web服务......也就是说,我在Eclipse中创建了一个WSDL文件,然后使用WSCF.blue(一个Visual Studio扩展)来自动生成必要的代码,它是回复/请求。不过,我希望使用回调,所以我可以让我的服务变成“推送”服务。WCF回调:它与Java是否可互操作?

在我开始重新调整我的应用程序之前,我在想它的互操作性。如果我使用回调(WCF),我的Java客户端仍可以使用它吗?

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

回答

4

WSDualHttpBindingCompositeDuplexBindingElement不能与Java互操作。

编辑:

正如x0n在我的回答中引用的原始博客文章指出通过@是不是100%正确。有一个newer blog文章描述了如何实现互操作性的方式。据我了解,这种方法类似于使用通过WS-Addressing进行关联的异步响应的服务(WCF在正常处理中不支持此交换模型)。 WsDualHttpBinding使用WS-ReliableMessaging等一些附加功能,并使服务成为有状态。

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

+0

那么Java只支持请求/回复呢?还是有另一种方式? – 2010-10-13 12:05:09

+0

双工通信是MS扩展。这是在两个构建到.NET Framework中的Web服务之间调用调用的方法。 – 2010-10-13 13:12:34

+3

在这里恢复一个老问题,但实际上,wsdualhttpbinding _binding_与java堆栈(我测试过metro)兼容,但callbackcontract部分不是(servicecontract上的声明)。细微的差异。您可以使用该绑定,但在java端,您必须使用消息处理程序挖掘ws-addressing replyto头并对其执行操作。 – x0n 2011-09-29 17:38:24