Axis2 介紹

1.  從官網apache.org上下載:


axis2-1.6.2-war.zip成功解壓後,把包含的axis2.war包放置TomCat的webapps目錄下即可,然後啓動TomCact(本文所使用的Web容器)輸入:http://IP:PORT/axis2/即表示Axis2安裝成功。


2. 編寫與發佈屬於你的第一個0配置的Service服務

既然都已經成功安裝好Axis2了,接下來我們要做的事情就是開始編寫及發佈我們的Service服務了,打開你的eclipse,新建一個工程,然後隨便寫個POJO

public class Myservice {
public String getName() {
return "My Webservice Axis2";
}

}

僅僅只是包含一個簡單的返回值爲String的getName()方法,沒錯,就這麼簡單。接下來如何將這個簡單的方法發不成WebService方法呢???這其實不難,你只需要將該源文件的字節碼(.class)文件拷貝至<TomCat安裝目錄>\webapps\axis2\WEB-INF\POJO中即可(如果沒有POJO目錄則自己新建)。

當發佈成功後,我們可以打開瀏覽器輸入http://localhost:8888/axis2/services/listServices便可以看見我們發佈的Service方法了:


注意看,Service的名稱就是咱們的類名,而該Service中所包含的方法就是咱們的getName()方法。

通過點擊Service名稱連接,你可以查看詳細的WSDL文件,那麼什麼是WSDL呢???簡單來說WSDL(Web Services Description Language),是一個用來描述Web服務和說明如何與Web服務通信的XML語言。我們可以在WSDL文件中來測試我們發佈的Service方法,輸入http://localhost:8888/axis2/services/MyService/getName


3.  如果pojo帶包了,就不要放在POJO目錄下了

想要將帶包的POJO順利發佈成Service,那麼必不可少的條件就是需要services.xml文件,因爲該文件描繪與類的關係結構

你首先需要在工程目錄下新建一個\META-INF\文件夾,然後新建一個service.xml文件即可。

  1. <span style="font-size: small;"><?xml version="1.0" encoding="UTF-8"?>  
  2. <!-- Service名稱 -->  
  3. <service name="myService">  
  4.     <!-- Service描述 -->  
  5.     <description>  
  6.         登陸效驗Service  
  7.     </description>  
  8.     <!-- 描繪包與類的關係結構 -->     
  9.     <parameter name="ServiceClass">  
  10.         org.johngao.service.LoginValidate  
  11.     </parameter>  
  12.     <!-- 定義方法處理器 -->  
  13.     <messageReceivers>  
  14.         <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"  
  15.             class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />  
  16.         <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"  
  17.             class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />  
  18.     </messageReceivers>  
  19. </service></span>  
上述文件中<service/>標籤描繪了你的Service結構,但一個<service/>標籤僅用於描繪一個POJO,其中屬性name則定義了目標Service的名稱。<description/>標籤用於描繪該Service的作用。<parameter/>標籤比較關鍵,描繪了POJO與包的結構關係,然後通過反射的形式進行加載調用。而<messageReceivers>標籤則尤爲重要,該標籤定義了Service的方法處理器,什麼是方法處理器呢?或許這個名字比較繞口,但理解起來還是挺容易的,換句話來說方法處理器可以理解爲對方法返回結果的管理。因爲我們所發佈的Service方法並不一定每一個都是具備返回值。假設你的Service並無返回值,那麼你可以選擇RPCInOnlyMessageReceiver(輸入處理器)類作爲你的方法處理器,反之可以選擇RPCMessageReceiver(輸入輸出處理器)類作爲你的方法處理器。

如果你在services.xml文件中需要發佈多個Service,那麼你可以使用<serviceGroup/>標籤:

 

Java代碼  收藏代碼
  1. <span style="font-size: small;"><serviceGroup>  
  2.     <service>  
  3.         <!-- 第一個Service -->  
  4.     </service>  
  5.     <service>  
  6.         <!-- 第二個Service -->  
  7.     </service>  
  8. </serviceGroup></span>  

 

 

接下來要做的事情就是你最期待的,那便是將帶包的POJO發佈成Service進行調用。當然你選擇使用service.xml文件的形式發佈Service,首先則必須將項目打包成".aar"文件(也就是".jar")。你可以先將項目打包成jar,然後再將文件後綴改變爲aar即可,當然不改也行,只是爲了遵循Axis2的規範,筆者還是建議你將文件後綴改成aar。

這裏筆者需要提醒你的是,在將項目打包時,你只需要選擇\META-INFA\service.xml即可,字節碼文件不需要一起打包:

 

 

接下來我們需要將打包好的aar文件放置在\axis2\WEB-INF\services\目錄下。當然這樣還並沒有結束,你還需要將項目的字節碼文件放置在\axis2\WEB-INF\classes\目錄下,或者以jar包的形式放置在\axis2\WEB-INF\lib\目錄下都可以。當然筆者還是選擇將字節碼文件放置在classes目錄下。

 

啓動你的Web容器,輸入http://ip:port/axis2/services/listServices進行訪問:



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章