Axis2
Axis2
Axis2是下一代 Apache Axis。Axis2 雖然由 Axis 1.x 處理程序模型提供支持,但它具有更強的靈活性並可擴展到新的體系結構。Axis2 基於新的體系結構進行了全新編寫,而且沒有採用 Axis 1.x 的常用代碼。支持開發 Axis2 的動力是探尋模塊化更強、靈活性更高和更有效的體系結構,這種體系結構可以很容易地插入到其他相關 Web 服務標準和協議(如 WS-Security、WS-ReliableMessaging 等)的實現中。
Apache Axis2 是Axis的後續版本,是新一代的SOAP引擎。
支持不同的消息交換模式。目前Axis2支持三種模式:In-Only、Robust-In和In-Out。In-Only消息交換模式只有SOAP請求,而不需要應答;Robust-In消息交換模式發送SOAP請求,只有在出錯的情況下才返回應答;In-Out消息交換模式總是存在SOAP請求和應答。
提供阻塞和非阻塞客戶端 API。
支持內置的 Web服務定址 (WS-Addressing) 。
新的部署模型,支持熱部署。
支持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](https://i1.twwiki.net/cover/w200/m3/8/m382449486c03c09adf44b186adf03f77.jpg)
Axis2
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