A new day is coming......
預備知識
進入學習java web service預先需要瞭解以下知識點,主要是有關xml和web service基礎的,最好瞭解一下這些技術的發展曆史、之間的關係
xml概念、使用場合
xsl/xslt概念
java xml parser: DOM/SAX,概念、使用方法
web service概念,現狀
現行標準:SOAP, WSDL, UDDI, ebXML
java RMI
知識結構
正如sun最新發行的jwsdp包的結構,java web service包含如下技術模組
JAXP Java API for XML Processing 使用各種解析器處理XML文檔
JAXB Java Architecture for XML Binding 使用模式派生JavaBeans 組件類處理XML文檔
JAX-RPC Java API for XML-based RPC 通過Internet向遠程對方進行SOAP方法調用,並接收返回的結果
JAXM(SAAJ) Java API for XML Messaging 通過Internet以一種標準的方式發送SOAP訊息
JAXR Java API for XML Registries 為訪問業務註冊中心和共用資訊提供一種標準的方式
jwsdp還包含
tomcat servlet容器
JSTL client端開發(jsp)標準標籤庫
註冊中心伺服器,一個測試用的註冊中心伺服器
JAXP
JAXP應該是學習web service過程中最易理解的部分,其作為xml解析/寫入模組不僅僅在web service開發中使用。
JAXP作為架構推出而非parser實現,實際上其僅包含六個關鍵類,為獲得XML解析器提供了標準介面,可配置使用任一DOM/SAX解析器。
JAXB
JAXB提供了一種快速和方便的方式來將一個XML模式綁定到Java代碼的一個表示上,使得Java開發人員能夠更輕鬆地將XML資料和Java應用中的處理函數融合在一起,而不必對XML本身有很多的瞭解。
支援以下方式的綁定:
1, XML Schema compile java class
2, XML Doc unmarshal java object
3, java object marshal XML Doc
4, java object validate by XML Schema
JAX-RPC
一種遠程調用機制,基於SOAP訊息發送,支援WSDL
進階特性:允許發送整個文檔,也允許發送文檔的一部分
支援SOAP訊息處理,並支援可擴充的類型映射
實現過程:
server:
1、定義web服務介面(即所提供的服務,擴充RMI.Remote)
2、實現介面類
3、運行映射工具,wsdeploy根據介面和類產生Tie類和WSDL
4、打包部署,可打包成war(產生web.xml檔案,其中包含指向映射工具產生的屬性檔案)
client:
1、運行映射工具,wscompile根據WSDL產生Stub工廠,stub類
2、從Stub工廠獲得Stub進行遠程調用
JAXM
定義了一個基本的XML資訊交換架構。
JAXM基於SOAP及帶附件的SOAP規範,並可擴充到使用更進階的訊息發送協議。
JAXM比JAX-RPC更適合SOAP訊息發送,messaging provider支援以下進階特性:
1、單項(非同步)訊息發送
2、可以將訊息路由到多個地方
3、可靠的訊息發送
然而由於SOAP格式的不確定性,一般只在客戶/服務商協商好後使用同一種schema才可使用JAXM直接通訊,否則JAX-RPC更具通用性(從公開的WSDL即可獲得介面)。
JAXR
提供訪問XML註冊中心的統一的方法。
XML註冊中心用來儲存發行的web服務的資訊。當前最常用的註冊中心是UDDI註冊中心。Jwsdp提供了一個供測試的註冊中心伺服器。
基本操作:
註冊
尋找註冊
幾點心得
1、web service各項技術都從client和server兩方面定義,相對獨立只與協議相關。原因是考慮到客戶/伺服器的分離以及相容其他系統。
2、由於web service在設計使用過程中都要考慮其通用性,務必搞清楚各個組件的使用情形,之間的依賴關係,以及其他協議/系統與之接入的情況。