2010-10-12 67 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