Web Service發佈基礎篇(一)之AXIS2

 一、AXIS2簡

       AXIS2是WebService/SOAP/WSDL的引擎,是Appache AXIS 1.x的衍生版。支持更強的模塊化、更高的靈活性、更有效地體系結構,可以更容易地與其他Web Service 服務標準與協議(如 WS-Security、WS-ReliableMessaging 等)結合。具有以下特點:

  • 採用AXIOM的XML處理模型,支持靈活定義對象模型。
  • 支持不同的消息交換模式:In-Only、Robust-In和In-Out 。In-Only消息交換模式只有SOAP請求,而不需要應答;Robust-In消息交換模式發送SOAP請求,只有在出錯的情況下才返回應答;In-Out消息交換模式總是存在SOAP請求和應答。   
  • 提供阻塞與非阻塞的API。
  • 支持內置的服務尋址(WebService-Addressing)。
  • 靈活的數據綁定與Web Service發佈方式:支持POJO(Plain Old Java Object)、AXIOM、XMLBeans、JiBX、JAXB 2.0等。
  • 全新的部署模型,支持熱部署、熱更新。
  • 支持HTTP、SMTP、JMS、TCP傳輸協議。
  • 支持REST(Representational State Transfer)。

 二、AXIS2的下載與部署

   1.首先,在客戶機安裝appache tomcat以及jdk基礎環境。

     2.在http://axis.apache.org/axis2/java/core/下載AXIS2的壓縮包

     目前,AXIS2的最新版本是1.6.3(2015.6.27)。本文下載1.6.2(2012.4.17)版本。

     下載列表:

     axis2-1.6.2-bin.zip               AXIS2完整版,支持WS-Addressing與SOAP-Moniter

     axis2-1.6.2-war.zip               AXIS2 Web容器部署版本

     3.解壓axis2-1.6.2-war.zip文件,然後將axis2.war文件拷貝到<Tomcat安裝目錄>\webapps目錄,啓動Tomcat,在瀏覽器地址欄輸入AXIS2的URL(http://localhost:8080/axis2/),axis2.war會自動解壓縮,如果,AXIS2的主頁面則表示加載成功。

 

 三、編寫與發佈WebService

     (1)POJO方式發佈(無需任何設置 )

     在AXIS2中無需任何設置,可以讓簡單的POJO發佈成Web Service。其中POJO的public方法會發布成爲Web Service方法。

   

public class AXISHelloService {
    public String sayHello(){
        return "Hello AXIS";
    }
    public String sayHelloToPerson(String name){
        if(name==null){
            name = "no body";
        }
        return "AXIS Hello,"+name;
    }
}

  編譯AXISHelloService類後,將AXISHelloService.class文件拷貝到<Tomcat安裝目錄>\webapps\axis2\WEB-INF\pojo目錄中。現在AXISHelloService已經發布成服務。  

    在瀏覽器地址欄中輸入如下的URL,查看服務列表:
     http://localhost:8080/axis2/services/listServices

   在瀏覽器中輸入兩個URL測試sayHello與sayHelloToPerson方法:

    http://localhost:8080/axis2/services/AXISHelloService/sayHello

    http://localhost:8080/axis2/services/AXISHelloService/sayHelloToPerson?name=bill

    

<ns:sayHelloToPersonResponse xmlns:ns="http://ws.apache.org/axis2">
  <return>AXIS Hello,bill</return>
</ns:sayHelloToPersonResponse>

   在編寫、發佈與測試AXIS2.0服務時,注意以下方面:

  • POJO不能使用package關鍵字聲明包。
  • AXIS2默認,熱發佈Web Service。即只要將Web Service的.class文件複製到pojo目錄時,tomcat無需重新啓動,即可自動發佈Web Service。Web Service熱發佈的配置項在<Tomcat安裝目錄>\webapps\axis2\WEB-INF\conf\axis2.xml文件中,找到如下配置項:
     <parameter name="hotdeployment">true</parameter>
  • AXIS2默認,是非熱更新,即一旦發佈Web Service,再更新Web Service,必須重啓Tomcat。如果想設置AXIS2是熱更新,則修改axis2.xml的以下配置項:
     <parameter name="hotupdate">false</parameter>
  • 在瀏覽器中測試WebService時,如果WebService方法有參數,需要使用URL的請求參數來指定該WebService方法。
  • 發佈Web Service的默認路徑的pojo,可以手動添加其他目錄,打開axis2.xml,在<axisconfig name="AxisJava2.0">節點之間,添加如下配置項
<deployer extension=".class" directory="deployPOJO" class="org.apache.axis2.deployment.POJODeployer"/>

         (2)使用services.xml配置文件發佈 

          AXIS2引擎發佈Web Service,雖然POJO類直接拷貝至axis2\WEB-INF\pojo目錄直接發佈成Web Service,無需任何配置,但這些類無法處於任何包內。因此,AXIS2提供支持處於包中的POJO類發佈成Web Service的方式,即services.xml方式。

    

 

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