2009-07-16 39 views
11

我試圖讓Java客戶端與WCF wshttpbinding WebService進行通信。但我無法這樣做。這個電話要麼掛起來,要麼我會得到「musunderstoodheader expcetions」。在Java中使用WCF WsHttpBinding WebService

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

我的Web服務客戶端只是一個空白的IntelliJ項目,使用「添加Web服務客戶端」(指定的Web服務平臺爲JAX-WS 2.X)生成相應的存根控件。

當我將綁定改爲BasicHttpBinding時,一切都完美無缺。

我試着玩WsHttpBinding配置,包括關閉安全性,但我沒有成功。

對此提出建議?想法? WsHttpBinding僅部分支持JAX-WS 2.0?

回答

14

您的問題是JAX-WS不支持wsHttpBinding中使用的相同WS協議。您需要改用WSIT。 WSIT作爲Metro庫的一部分提供,該庫也可在Glassfish上獲得。

如果可能,我推薦使用wsHttpBinding或ws2007HttpBinding,但您仍然可以使用基於SSL/Transport Auth的basicHttpBinding執行相當安全的服務。

0

我會仔細檢查你的WCF配置並刪除所有的認證,授權等屬性。請記住,默認情況下,WCF將在使用安全傳輸/綁定時安全地公開您的服務。因此,除非您將Java客戶端配置爲遵守這些安全要求,否則很可能無法進行身份驗證,並且您不會看到這兩種相反的情況。

一旦你有了兩次談話,逐漸加入每個安全元素,直到你正確地配置了你的Java客戶端。

+0

如上所述,我已經關閉了所有的安全。 – vicsz 2009-07-17 19:24:31

相關問題