2010-10-14 52 views
3

我有一個HTTPS Java Web服務,我試圖使用.NET [.NET 2.0樣式客戶端/ WCF客戶端]訪問Web服務。我從WS回來這個錯誤。 「.NET客戶端調用HTTPS Java Web服務

」HTTP狀態401 - 此請求需要HTTP身份驗證()。「

我怎麼知道WS有什麼樣的安全性? 除了SSL,我有用戶名和密碼發送給WS,我相信這是消息身份驗證的一部分。

Java客戶端似乎是成功的通信,它有幾個有趣的線,

 System.setProperty("javax.net.ssl.keyStorePassword", new String(jsseKeyStorePassword)); 
     System.setProperty("javax.net.ssl.trustStorePassword", new String(jsseTrustStorePassword)); 

---------------------------------------------- 

    BindingProvider bindingProvider = (BindingProvider) port; 
     bindingProvider.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, username); 
     bindingProvider.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, new String(password)); 

我希望得到任何幫助。

+0

與Silverlight客戶端工作時,我什麼都沒有,但頭痛(當然這是第2版)連同一個Axis2 WS ...謹慎行事... – 2010-10-14 19:05:07

回答

0

似乎Java WS需要存儲在幾個關鍵存儲區中的服務器和根證書。它需要知道這些密鑰庫的密碼才能獲得證書,這些證書似乎在jsseKeyStorePasswordjsseTrustStorePassword變量中可用。

此外,您應該至少使用.NET Framework 3.0才能使用Windows Communication Foundation。

+0

僅供參考我正在使用.NET 4.0。 – iraSenthil 2010-10-14 19:18:19

+0

這很好,但你確實提到了「.NET .20/WCF」。 – Bernard 2010-10-14 19:36:33

+0

姆姆,我的意思是.NET 2.0風格的客戶端或WCF客戶端 – iraSenthil 2010-10-14 19:55:41

2

長話短說, 兩個問題,我不得不解決,

  1. HTTP狀態401 - 這個請求 需要HTTP認證()產生

    改變後的認證模式爲基本在VS customeBinding在app.config中

  2. HTTP/1.1 505 HTTP版本不支持

    刪除期望:100繼續 SOAP頭。添加此行ServicePointManager.Expect100Continue = false;。對於這個問題的細節, 去這裏

長的故事在這裏http://www.irasenthil.com/2010/10/wcf-client-to-java-web-service.html