為了更好的理解axis2,我們首先看web services的訊息生命週期的概念。通常,訊息的生命週期如下圖:
[img]
訊息傳送者應用建立原始的soap訊息——由相應的訊息頭和訊息體組成的xml檔案,一旦訊息準備完畢,就會把這些訊息通過http、jms等方式傳送出去。如果axis2載入了其他的ws-*模組,那麼在傳送之前會使用這些模組對訊息做相應的處理。訊息達到接收者一方,會被接收者的監聽埠所接收,並對訊息做一定的處理,然後轉化到訊息處理邏輯。
那麼axis2是如何處理訊息的呢?
axis2的訊息傳送端或者接收端可以以事務的方式來處理,從axis2的角度看,其結構如下:
[img]
在任一端,都有乙個應用用來處理(傳送或者接收)訊息,而訊息在由傳送者真正發出之前或者由接收者初始接收之後,都可以配置一系統handlers對訊息進行處理。web services的價值就是對於傳送者或者接收者來說,他們不必在同一平台,更不需要在乙個應用系統中。假設axis2已經執行在傳送者或接收者兩端,那麼處理過程如下:
[list]
[*] 傳送者建立soap訊息
[*] axis對訊息處理一些必要的操作(由handler部分完成),例如加密等
[*] transport sender傳送訊息
[*] 在另一端,transport listener檢測訊息
[*] transport listener把檢測到的訊息傳遞給handlers
[*] 一旦訊息進入 "pre-dispatch"階段,被處理過的訊息就會被傳送到具體的應用處理者那裡進行業務的處理。
[/list]
在axis2中,上面這些操作被分隔成不同的phases,例如"pre-dispatch", "dispatch", "message processing"等。每個phase都是一系列handler的集合。你可以控制哪些handler出現在**phase裡,以及這裡handler的執行順序,開發者也可以定義自己的handler及phase並加入到上面的過程中。
axis2中內建的一些module裡的handlers也可以加入到上面的處理流程中。
axis2接收json 利用AXIS2返回JSON
在已經有axis2的基礎之上操作 4 在axis2.xml中新增json訊息格式,找到標籤,在這個標籤裡新增如下 段 class org.apache.axis2.json.jsonmessageformatter class org.apache.axis2.json.jsonbadgerfish...
Axis2 呼叫 流程
axis2看了一些資料 自己總結下 客戶端呼叫介面流程 首先是先 建立request soap包工廠 fac。建立 請求soap 包的工廠 private static omfactory fac omabstractfactory.getomfactory 先通過fac工廠 建立 sopa的 命名...
Axis2模組擴充套件
axis2可以通過模組 module 進行擴充套件。axis2模組至少需要有兩個類,這兩個類分別實現了module和handler介面。開發和使用乙個axis2模組的步驟如下 1.編寫實現module介面的類。axis2模組在進行初始化 銷毀等動作時會呼叫該類中相應的方法 2.編寫實現handler...