天天看點

用axis2生成java 用戶端代碼_axis2生成java用戶端代碼[POJO類實作]

一、Axis2的下載下傳和安裝

讀者可以從如下的網址下載下傳Axis2的最新版本:

用axis2生成java 用戶端代碼_axis2生成java用戶端代碼[POJO類實作]

讀者可以下載下傳如下兩個zip包:

axis2-xxx-bin.zip

axis2-xxx-war.zip

其中axis2-xxx-bin.zip檔案中包含了Axis2中所有的jar檔案, axis2-xxx-war.zip檔案用于将WebService釋出到Web容器中。

将axis2-xxx-war.zip檔案解壓到相應的目錄,将目錄中的axis2.war檔案放到\webapps目錄中(本文使用的Tomcat的版本是7.x),并啟動Tomcat。

在這裡我借用的是myeclipse啟動的tomcat

在浏覽器位址欄中輸入如下的URL:

http://localhost:8080/axis2/

如果在浏覽器中顯示出如圖1所示的頁面,則表示Axis2安裝成功。

用axis2生成java 用戶端代碼_axis2生成java用戶端代碼[POJO類實作]

二、編寫和釋出WebService

對于用Java實作的服務程式給人的印象就是需要進行大量的配置,不過這一點在Axis2中将被終結。在Axis2中不需要進行任何的配置,就可以直接将一個簡單的POJO釋出成WebService。其中POJO中所有的public方法将被釋出成WebService方法。

1,打開myeclipse,建立一個web項目

用axis2生成java 用戶端代碼_axis2生成java用戶端代碼[POJO類實作]

2,在web項目的src目錄下建立一個簡單的POJO類,此類沒有包名,代碼如下:

public class SimpleService {

public String getGreeting(String name)

{

return "你好 " + name;

}

public int getPrice()

{

return new java.util.Random().nextInt(1000);

}

}

在SimpleService類中有兩個方法,由于這兩個方法都是public方法,是以,它們都将作為WebService方法被釋出。

編譯SimpleService類後,将SimpleService.class檔案放到\webapps\axis2\WEB-INF\pojo目錄中(如果沒有pojo目錄,則建立該目錄)。

用axis2生成java 用戶端代碼_axis2生成java用戶端代碼[POJO類實作]

現在我們已經成功将SimpleService類釋出成了WebService。在浏覽器位址欄中輸入如下的URL:

http://localhost:8080/axis2/services/listServices

這時目前頁面将顯示所有在Axis2中釋出的WebService,如圖所示。

用axis2生成java 用戶端代碼_axis2生成java用戶端代碼[POJO類實作]

在浏覽器位址欄中輸入如下的兩個URL來分别測試getGreeting和getPrice方法:

http://localhost:8080/axis2/services/SimpleService/getGreeting?name=bill

http://localhost:8080/axis2/services/SimpleService/getPrice

下面圖示分别對應上述兩個請求連結

用axis2生成java 用戶端代碼_axis2生成java用戶端代碼[POJO類實作]

--

用axis2生成java 用戶端代碼_axis2生成java用戶端代碼[POJO類實作]

在編寫、釋出和測試0配置的WebService時應注意如下幾點:

1. POJO類不能使用package關鍵字聲明包。

2. Axis2在預設情況下可以熱釋出WebService,也就是說,将WebService的.class檔案複制到pojo目錄中時,Tomcat不需要重新啟動就可以自動釋出WebService。如果想取消Axis2的熱釋出功能,可以打開\webapps\axis2\WEB-INF\conf\axis2.xml,找到如下的配置代碼:true

‍将true改為false即可‍。要注意的是,Axis2在預設情況下雖然是熱釋出,但并不是熱更新,也就是說,一旦成功釋出了WebService,再想更新該WebService,就必須重新開機Tomcat。這對于開發人員調試WebService非常不友善,是以,在開發WebService時,可以将Axis2設為熱更新。在axis2.xml檔案中找到false,将false改為true即可。

3. 在浏覽器中測試WebService時,如果WebService方法有參數,需要使用URL的請求參數來指定該WebService方法參數的值,請求參數名與方法參數名要一緻,例如,要測試getGreeting方法,請求參數名應為name,如上面的URL所示。

4. 釋出WebService的pojo目錄隻是預設的,如果讀者想在其他的目錄釋出WebService,可以打開axis2.xml檔案,并在元素中添加如下的子元素:

上面的配置允許在\webapps\axis2\WEB-INF\my目錄中釋出WebService。例如,将本例中的SimpleService.class複制到my目錄中也可以成功釋出(但要删除pojo目錄中的SimpleService.class,否則WebService會重名)