Axis2

Axis2

Axis2是下一代 Apache Axis。Axis2 雖然由 Axis 1.x 處理程式模型提供支持,但它具有更強的靈活性並可擴展到新的體系結構。Axis2 基於新的體系結構進行了全新編寫,而且沒有採用 Axis 1.x 的常用代碼。支持開發 Axis2 的動力是探尋模組化更強、靈活性更高和更有效的體系結構,這種體系結構可以很容易地插入到其他相關 Web 服務標準和協定(如 WS-Security、WS-ReliableMessaging 等)的實現中。 Apache Axis2 是Axis的後續版本,是新一代的SOAP引擎。

主要特點

採用名為 AXIOM(AXIs Object Model)的新核心XML(標準通用標記語言的子集)處理模型,利用新的XML解析器提供的靈活性按需構造對象模型。

支持不同的訊息交換模式。目前Axis2支持三種模式:In-Only、Robust-In和In-Out。In-Only訊息交換模式只有SOAP請求,而不需要應答;Robust-In訊息交換模式傳送SOAP請求,只有在出錯的情況下才返回應答;In-Out訊息交換模式總是存在SOAP請求和應答。

提供阻塞和非阻塞客戶端 API。

支持內置的 Web服務定址 (WS-Addressing) 。

靈活的數據綁定,可以選擇直接使用 AXIOM,使用與原來的 Axis 相似的簡單數據綁定方法,或使用XMLBeans、JiBX 或 JAXB 2.0 等專用數據綁定框架。

新的部署模型,支持熱部署。

支持HTTP,SMTP,JMS,TCP傳輸協定。

支持REST (Representational State Transfer)。

方式比較

其中前面兩種都是從基本的代碼開始寫起的.後面三種是從WSDL生成代碼框架.

Deploying POJOs

(Plain Ordinary Java Objects)

JavaBean類需滿足JavaBean規範,如採用標準的setter/getter方法設定成員變數.POJO只是普通的java類.可以認為,JavaBean類都是是POJO,但POJO類未必是JavaBean!

Building the service using AXIOM

Axis2 Axis2

需要我們在代碼中,獲取XML利用STAX進行獲取相關返回值,和創建訊息等.是一個比較底層的創建方式.比POJOS複雜.

SAX實際上是定義了一個拉式(pull)的xml解析器。 一般的解析xml是通過DOM或SAX形式。

DOM的問題是需要一次性讀入整個XML,對於大型的xml效率低。STAX是基於事件, 當讀取到文檔的某個位置會觸發到某個事件。而這個讀取過程是不受控的, 就是必須一次讀完(對這個不熟悉)。這就是所謂推(push)式的。即把整個檔案推給client。

STAX也是類似於SAX的事件,但是是由client的next()來控制指針的前進, 是把檔案的內容pull出來的。這大大增強了客戶端的控制能力,例如寫入和修改節點。

SAX:Simple API for XMLStAX(Streaming API for XML)是標準的XML處理API,它能夠從應用程式的stream對象解析XML數據或把XML數據轉換成stream對象。STAX是一個用Java實現的XML拉式解析器

Generating the service using ADB

(Axis2 Databinding Framework )

Generating the service using XMLBeans

XMLBean是Apache的一個開源項目,以如果有一個類似的工具能夠實現將對XML的讀寫轉成對JavaBean的操作,將會簡化XML的讀寫,即使對XML不熟悉的開發人員也能方便地讀寫XML. 這個工具就是XMLBean.

Generating the service using JiBX (JiB

JiBX是一個為Java提供的XML數據綁定框架。它可以和現存的類一起運行,使用一個靈活的映射定義檔案來決定如何將數據對象轉換成XML

相關詞條

相關搜尋

熱門詞條

聯絡我們