關於java調用.Net WCF服務的講解(一)

最近做畢業設計,一個團體項目。

我做的是關於系統構架方面的。簡單點說就是.Net寫的一個WCF服務,而訪問服務的是java客戶端或者說是android客戶端。

而我的WCF服務配置成wsHttpBinding+certificate證書加密+自定義的用戶名密碼檢驗功能。在服務的訪問上用了https協議,個人也沒做過java平臺和.Net Web Service的整合。而且https無疑增加了這個難度。

所以剛開始的想法是通過asp.net網頁來訪問服務,再利用網頁來給java,android返回xml。這樣利用http避免了平臺的不兼容性。

缺點是各種業務的增加刪除不緊要在Web Service中增加,還要在網頁中增加。

而後來由於另外幾個同學遲遲沒有開始做應用端,導致業務無法預料,時間越脫越長。

個人覺得時間可能有點緊,就想把框架簡單化,直接讓java端和andriod客戶端調用WCF服務。

於是清明放假這幾天改造了一下程序框架,網絡上參考了各種文章,終於調試成功了。

廢話不說了,看代碼。

首先,最簡單的服務,沒有certificate,沒有自定義的用戶名密碼檢驗,只有wsHttpBinding。

WCF服務配置程序如下:

 

java客戶端調用程序:(用axis2-1.4.1生成,生成方法cmd下 axis2的bin目錄下 wsdl2java -uri http://localhost:8889/test?wsdl)

 

結果調用失敗,一直是什麼read time out,超時。網查查閱資料,說這麼設置就可以了。

 

於是設置,結果還是超時。繼續找資料。發現都是說超時。當時那個崩潰啊~~好在翻了10頁google,終於找到一篇說是java不支持wshttpbinding協議。因爲wshttpbinding是微軟在SOAP1.0基礎上改進過的,不是通用的綁定協議。這裏又補充了下理論知識,呵呵~~於是改爲basicHttpBinding。

WCF服務配置(basicHttpBinding)

 

然後重新用axis2 生成客戶端代理。調用代碼,果然成功。調用代碼不變。

調用結果圖:

調用結果

 

下面是axis2生成的客戶端代理結構圖。

 

好了,今天就先調用成功。要下班了。明天在進一步加各種功能。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章