2011-08-26 98 views
2

我試圖讓Java客戶端與WCF wshttpbinding WebService進行通信。但到目前爲止,我一直沒有成功。該調用掛起,或者我得到:「SOAPFaultException:該消息無法處理。這很可能是因爲動作'http://tempuri.org/ISampleService/GetServiceName'不正確,或者因爲消息包含無效或過期的安全上下文標記或者因爲綁定之間存在不匹配。如果服務由於不活動而中止通道,則安全上下文令牌將無效。爲了防止服務中止空閒會話過早增加服務端點綁定的接收超時。「使用wsHttpBinding在Java客戶端中使用WCF服務

我的Web服務只是默認的Visual Studio 2010生成的」WCF服務庫模板「。

我的Java客戶端是在netBeans 7.0.1中生成的,並且已經使用新建的其他 - > Web服務 - > Web服務客戶端生成了存根,我引用了一個本地WSDL。我嘗試添加WebServiceFeature wsAddressing = new AddressingFeature(true);我嘗試添加WebServiceFeature wsAddressing = new AddressingFeature(true);我嘗試添加WebServiceFeature wsAddressing = new AddressingFeature(true);在生成的存根中,但它只是拋出上面的異常。

我看到有類似問題的其他人;但是,我沒有看到任何真正的解決方案。任何建議將不勝感激。

+0

默認情況下'WsHttpBinding'使用帶SSPI協商和安全對話的消息安全性。 –

+0

我在這方面花了不少時間,我一直沒能找到任何解決方案。 Glassfish應該支持WS安全性,但我一直無法獲得任何工作。 – tier1

回答

0

這聽起來像你有一個肥皂格式問題。 java客戶端不會生成對WCF服務有意義的soap XML。要了解XML服務期望的XML XML文件,請使用WcfTestClient command line app來調用該服務。這個應用程序動態地在WinForm應用程序中創建一個服務代理。在應用程序中,調用服務操作並單擊XML選項卡(右側窗格底部的「格式化」選項卡旁邊)。您將在此選項卡中看到請求&響應soap。

接下來,將WCF服務配置爲message tracing,並從java客戶端調用它以查看它正在發送的soap XML。現在你可以比較兩條肥皂信息,看看有什麼不同。 java客戶端需要配置爲生成WCF所期望的soap格式。

WCF團隊最近發佈了專門針對java的some WCF interop bindings。這些可能不適用於您的具體情況,但他們可能值得回顧。

相關問題