<soap-env:header>;
<t:transaction xmlns:t="some-uri" soap-env:mustunderstand="1">;
5
</t:transaction>;
</soap-env:header>;
<soap-env:body>;
<m:getlasttradeprice xmlns:m="some-uri">;
<symbol>;sunw</symbol>;
</m:getlasttradeprice>;
</soap-env:body>;
</soap-env:envelope>;
jaxr
為了支持uddi在java平台上的功能,java apis for xml registries (jaxr)允許開發者來訪問註冊中心。
值得注意的是,jaxr並不是建立web服務必需的,你可以利用其他常用的xml apis來直接集成這些協定。
jaxr是一個方便的api,它提供了java api來發布,查找以及編輯那些註冊信息。它的重點在於基於xml的b2b套用,複雜的地址本查找以及對xml訊息訂閱的支持等web服務。
它也可以用來訪問其他類型的註冊中心,象ebxml註冊中心。
這些對web服務的註冊信息進行的操作,可以使用當前的一些web服務工具來完成(例如第三方的soap和ebxml訊息工具)。另外,當jaxp提供了一致並具有針對性的api來完成這些操作,這將使開發變得更加容易。
jax/rpc
為了使開發人員專注於建立象soap那樣的基於xml的請求,jcp正在開發基於rpc (jax/rpc) 的java api。jax/rpc是用來傳送和接收方法調用請求的,它基於xml協定,象soap,或者其他的象xmlp (xml protocol,要了解更多可以參考。jax/rpc使你不用再關注這些協定的規範,使套用的開發更快速。不久,開發人員就不用直接以xml表示方法調用了。
目前有很多第三方實現了soap,開發人員可以在不同的層次上調用soap,並選擇使用哪一種。將來,jax/rpc會取代這些apis並提供一個統一的接口來構造以及處理soap rpc請求。
在接收一個從商業夥伴那裡過來的soap請求的時候,一個java servlet用jax/rpc來接收這個基於xml的請求。一旦接收到請求後,servlet會調用商務方法,並且把結果回復給商業夥伴。
jaxm
當從商業合作夥伴那裡接收一個web服務的請求時,我們需要java api實現一個servlet來處理ebxml訊息,就象我們用jax/rpc來處理soap請求一樣。
java api for xml messaging (jaxm) 是集成xml訊息標準(象ebxml訊息或者soap訊息)的規範。
這個api是用來推動xml訊息處理的,它檢測那些預定單的訊息格式以及約束。它控制了所有的訊息封裝機制,用一種直觀的方式分割了訊息中的信息,象路由信息,發貨單。這樣,開發人員只要關注訊息的有效負載,而不用去擔心那些訊息的重複處理。
目前的開發人員用jaxp來實現jaxm將要提供的功能,jaxm將會提供一套非常具有針對性的api來處理基於xml的訊息傳送。這將大大簡化開發人員的代碼,並使它們具有統一的接口。
jaxm和jax/rpc的差別在於處理訊息導向的中間件以及遠程過程調用的不同。jaxm注重於訊息導向,而jax/rpc是用來完成遠程過程調用的。以下是圖解。
請注意,在jaxm 和 jax/rpc技術成熟之前,開發人員還是依賴於第三方的soap apis,象apache soap, idooxoap, 以及 glue。當jaxm 和 jax/rpc正式發布後,它將為當前不同的soap和ebxml訊息提供統一的接口。就象jdbc位多種不同的資料庫提供統一的接口。
jaxb
xml綁定技術可以把xml文檔和java對象進行自由轉換。
用jaxb,你可以在後台的ejb層,把xml文檔轉換成java對象。同樣你也可以把從ejb中取出的java對象轉換成xml文檔返回給用戶。
jaxb接口提供了比sax和dom更高級的方法來處理xml文檔。它提供的特性可以在xml數據和java類之間互相映射,提供了一個簡單的方法來轉換xml數據。它比逐個解析標記更簡單。
2.2 建立weservice的步驟
在建立weservice的時候,有三個主要步驟:
1.建立客戶端聯接
為了允許applets,applications,商業合作夥伴,瀏覽器和pdas 使用web服務。
2.實現web服務
包括工作流,數據傳送,商業邏輯以及數據訪問。這些功能是隱藏在web服務後,並且為客戶端工作的。
3.聯接後台系統
這個系統可能包括一個或多個資料庫,現存的企業信息系統,商業合作夥伴自己的系統或者web服務,以及在多個系統中共享的數據。
基於j2ee的web服務的核心構架:
rmi
1. rmi-iiop
2. rmi 是在java中使用remote method invocation的最初的方法,rmi使用java.rmi包
rmi-iiop 是rmi的一個特殊版本,rmi-iiop可以和corba兼容,rmi-iiop使用java.rmi包和javax.rmi
jaf(java活動構架)
開發者可以使用jaf來決定任意一塊數據的類型、封裝對數據的訪問、尋找合適的操作、實例化相關的bean來執行這些操作等。
例如,javamail就是使用jaf根據mime類型來決定實例化那一個對象。
ejb
1. ejb組件實現代碼的限制
ejb組件的約束
ejb的開發者並不需要在ejb的組件實現代碼中編寫系統級的服務,ejb提供商/開發
者需知道並且嚴格地遵守一些限制,這些限制與開發穩定的和可移植的ejb組件的利益有