java開發webservice客戶端實例(1)

啓示:

1、在充分了解問題之前不要太早下結論,低調做人高調做事。

2、作爲新手,同一個問題儘可能嘗試不同的方法解決,因爲你不知道那個方法合適。

3、記錄下點滴收穫,技術方法都在於積累。

4、先解決問題,再去弄清楚原理。


基本原理:

Web Service技術, 能使得運行在不同機器上的不同應用無須藉助附加的、專門的第三方軟件或硬件, 就可相互交換數據或集成。依據Web Service規範實施的應用之間, 無論它們所使用的語言、 平臺或內部協議是什麼, 都可以相互交換數據。Web Service是自描述、 自包含的可用網絡模塊, 可以執行具體的業務功能。Web Service也很容易部署, 因爲它們基於一些常規的產業標準以及已有的一些技術,諸如XML和HTTP。Web Service減少了應用接口的花費。Web Service爲整個企業甚至多個組織之間的業務流程的集成提供了一個通用機制。

用到的術語:XML、XSD、WSDL、SOAP(詳解點擊打開鏈接

解決問題步驟及技術:

問題描述:對方給了我wsdl和相關函數說明,讓我開發客戶端向其傳輸數據。拿到開發文檔一看密密麻麻的好幾頁,後來證明這些都是嚇人用的,掌握了方法一切都很簡單。

開發,特別是java開發都會想到框架。以前學過ssh,知道框架能加快開發,好處多多。於是網上找了下關於webservice框架的資料摘抄如下:

WebService框架JWS、Axis2、XFire、CXF的區別
1、JWS是Java語言對WebService服務的一種實現,用來開發和發佈服務。而從服務本身的角度來看JWS服務是沒有語言界限的。但是Java語言爲Java開發者提供便捷發佈和調用WebService服務的一種途徑。
2、Axis2是Apache下的一個重量級WebService框架,準確說它是一個Web Services / SOAP / WSDL 的引擎,是WebService框架的集大成者,它能不但能製作和發佈WebService,而且可以生成Java和其他語言版WebService客戶端和服務端代碼。這是它的優勢所在。但是,這也不可避免的導致了Axis2的複雜性,使用過的開發者都知道,它所依賴的包數量和大小都是很驚人的,打包部署發佈都比較麻煩,不能很好的與現有應用整合爲一體。但是如果你要開發Java之外別的語言客戶端,Axis2提供的豐富工具將是你不二的選擇。
3、XFire是一個高性能的WebService框架,在Java6之前,它的知名度甚至超過了Apache的Axis2,XFire的優點是開發方便,與現有的Web整合很好,可以融爲一體,並且開發也很方便。但是對Java之外的語言,沒有提供相關的代碼工具。XFire後來被Apache收購了,原因是它太優秀了,收購後,隨着Java6 JWS的興起,開源的WebService引擎已經不再被看好,漸漸的都敗落了。
4、CXF是Apache旗下一個重磅的SOA簡易框架,它實現了ESB(企業服務總線)。CXF來自於XFire項目,經過改造後形成的,就像目前的Struts2來自WebWork一樣。可以看出XFire的命運會和WebWork的命運一樣,最終會淡出人們的視線。CXF不但是一個優秀的Web Services / SOAP / WSDL 引擎,也是一個不錯的ESB總線,爲SOA的實施提供了一種選擇方案,當然他不是最好的,它僅僅實現了SOA架構的一部分。
基於以上的認識,我們可以得知,雖然有了Java6,但是我們還可以選擇Axis2、XFire、CXF等。我們不能指望有了Java6 JWS,就能異想天開去實施SOA。如果要與別的語言交互,也許我們還有賴於Axis2等等,當然這不是唯一選擇,僅僅是一種可供選擇的方案。
還有,目前很多企業的應用還是基於Java5的,而Java5的項目不會瞬間都升級到Java6,如果要在老項目上做擴展,我們還有賴於其他開源的WS引擎。
ps:axis2不是pojo形式

看了這段資料,對於初學webservice的我來說,似乎沒有任何幫助,要知道現在jdk都升級到7了。還是動手吧。

先用myeclipse自帶的wsdl解析工具看看有哪些方法和需要哪些參數:具體步驟如下:


瞭解要傳輸的內容後現在的問題是:怎麼傳輸這些東西。

下一篇文章再整理




發佈了45 篇原創文章 · 獲贊 26 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章