簡體   English   中英

使用wsHttpBinding在Java客戶端中使用WCF服務

[英]Consuming a WCF service in a Java Client using wsHttpBinding

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

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

我的Java客戶端是在netBeans 7.0.1中生成的,而存根是使用新的其他-> Web服務-> Web服務客戶端生成的,並且我引用的是本地WSDL。

我嘗試添加WebServiceFeature wsAddressing = new AddressingFeature(true); 在生成的存根中,但它只會引發上面的異常。

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

聽起來您有肥皂格式化問題。 Java客戶端不會生成對WCF服務有意義的soap XML。 要了解服務期望使用什么肥皂XML,請使用WcfTestClient命令行應用程序調用服務。 該應用程序在WinForm應用程序中動態創建服務代理。 在應用程序中,調用服務操作,然后單擊XML選項卡(在右窗格底部的Formatted選項卡旁邊)。 您會在此標簽中看到請求和響應肥皂。

接下來,配置WCF服務以進行消息跟蹤 ,並從java客戶端調用它以查看正在發送的soap XML。 現在,您可以比較兩個肥皂消息,以查看有什么不同。 需要將Java客戶端配置為生成WCF期望的Soap格式。

WCF團隊最近發布了一些專門用於Java的WCF互操作綁定 這些可能不適用於您的特定情況,但可能值得回顧。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM