1. 程式人生 > >axis2 webService開發(打包aar檔案 )

axis2 webService開發(打包aar檔案 )

 本文主要是根據他的文章和自己實際開發中遇到的一些問題得出的,你也可以檢視原文
         安裝好axis容器、eclipse axis2外掛後就可以用打包aar檔案方式釋出web service服務了

服務端:

我們的服務很簡單的,就是輸入一個字串,然後打印出一段字串。

程式碼很簡單,主要是測試用(思想是一樣的)。

Java程式碼 複製程式碼收藏程式碼
  1. package com.deltaj.server;   
  2. publicclass SimpleServer {   
  3. /**  
  4.      * 簡單的測試方法  
  5.      *   
  6.      */
  7. public String simpleMethod(String name) {   
  8. return name + "Say this is a Simple method ^-^";   
  9.     }   
  10. }  

主要的過程就是如何利用axis2的eclispe外掛來發布這個服務啦。

1。在eclispe 的package Explorer 中點選右鍵,在選單中選擇新建--->other...----->Axis2 Service Archiver

2.然後點選next進入了類選擇頁面,在這個頁面中的Class File Location選擇框中選擇類所在的資料夾。 


 3.點選next之後進入了選擇 wsdl檔案,這裡我們選擇skip wsdl。

4. 點選next之後,進入的是選擇jar檔案的頁面,這裡我們沒有外部的jar,所以點選next直接跳過這個頁面。


 4.點選next之後,進入的是選擇xml頁面,這裡我們選擇的是自動生成xml,也就是勾選

Generate the service xml automatically這一項


 5.點選next之後,進入的是生成xml檔案的頁面,在service name 裡填寫這個服務所起的名字,這裡我起名為simpleServer,然後在class name 中填寫要釋出的類,這裡一定要寫全路徑,寫好後就可以點選load 按鈕,

如果一切ok的話,你會看到如下畫面


 6 點選next 後,進入的是輸出artiver檔案的頁面,先要在output File location 中選擇要輸出的路徑,

   在output  File Name中輸入artiver檔案的名稱。我起的名字是simpleServer(這一步中有的會出現不釋出不成功,主要是版本問題,只要把Eclipse axis2外掛換成最新的就可以了;我用過1.4.1的就會報錯,建議是用更高的版本)


 7.點選finish ,如果看到如下的畫面,恭喜你,服務釋出成功啦。

8.接下來,我們就可以把這個aar檔案放入tomcat中釋出,首先把生成的aar檔案拷貝到tomcat目錄中的axis2專案的service目錄中位置如圖。




 

10.點選Service連線,你會看到釋出的服務列表。這裡面就能看到我們釋出的simpleService


 11.點選我們的服務simpleServer的連線,我們會看到。至此,服務釋出成功。

客服端:

這節我們就來寫一個客戶端來呼叫一下這個服務。主要關注一下如何用elispe的axis2的外掛來生成stub程式碼。

1.在eclispe 的package Explorer 中點選右鍵,在選單中選擇新建--->other...----->Axis2 Code Generator




 

2.點選next,進入下一個頁面,選擇從wsdl檔案來產生java檔案。

 

3. 點選next,然後選擇wsdl檔案,注意此處要填寫上一節我們

 4.點選next,進入設定頁面,這裡我們就用預設的設定。

 

5. 點選next,選擇輸出檔案的路徑。

 

6.點選next,如果看到這個頁面,恭喜你已經生成程式碼成功。

 

7.在package Explorer中重新整理一下專案,然後你發現出現2個新的檔案SimpleServerStub和SimpleServerCallbackHandler 。開啟SimpleServerStub你會驚喜的發現。著名的小紅叉一個接一個的

這是因為沒有axis2的類包。我們可以在下載的axis2-1.4.1-bin中找到lib包,把其中的jar都加入我們的工程中。

然後重新編譯一下工程,這時我們發現SimpleServerStub還是有幾個小紅叉。這個是因為這個外掛有個小bug。

生成的程式碼沒有實現序列化方法。我們可以自己來加上,在小紅叉上點一下,彈出一個小選單,選擇

Add unimplemented methods .



 

8.

Java程式碼 複製程式碼收藏程式碼
  1. /**  
  2.  * 呼叫釋出的服務。  
  3.  *   
  4.  */
  5. publicclass SimpleClient {   
  6. publicstaticvoid main(String[] args) throws Exception{   
  7. //初始化樁檔案
  8.   SimpleServerStub stub = new SimpleServerStub();   
  9. //初始化SimpleMethod方法。
  10.   SimpleServerStub.SimpleMethod request = new  SimpleServerStub.SimpleMethod();   
  11. //呼叫simpleMethod的setName方法。
  12.   request.setName("zt");   
  13. //
  14.   System.out.println(stub.simpleMethod(request).get_return());   
  15.  }   
  16. }  
/**
 * 呼叫釋出的服務。
 * 
 */
public class SimpleClient {
 
 public static void main(String[] args) throws Exception{
  
  //初始化樁檔案
  SimpleServerStub stub = new SimpleServerStub();
  //初始化SimpleMethod方法。
  SimpleServerStub.SimpleMethod request = new  SimpleServerStub.SimpleMethod();
  //呼叫simpleMethod的setName方法。
  request.setName("zt");
  //
  System.out.println(stub.simpleMethod(request).get_return());
  
  
 }
}

   如果一切正常,你就會看到結果

log4j:WARN No appenders could be found for logger (org.apache.axis2.description.AxisService).
log4j:WARN Please initialize the log4j system properly.
ztSay this is a Simple method ^-^。

呼叫服務成功。這是個簡單的例子

相關文章: