2.5 Apache Axis2 快速學習手冊之JiBx 構建Web Service

5. 使用JiBX生成服務(經過JIBX 命令將wsdl 生成 services )

要使用JiBX數據綁定生成和部署服務,請執行如下步驟。html

經過在Axis2_HOME / samples / quickstartjibx目錄中的控制檯上鍵入如下內容,使用WSDL2Java實用程序生成框架java

%AXIS2_HOME%\bin\wsdl2java.bat -uri resources\META-INF\StockQuoteService.wsdl -p samples.quickstart.service.jibx -d jibx -s -ss -sd -ssi -uw -o build\service

不然,只需在Axis2_HOME / samples / quickstartjibx目錄中鍵入「ant generate.service」便可。web

選項-d jibx指定JiBX數據綁定。-s開關僅指定同步或阻塞調用。-ss開關建立服務器端代碼(框架和相關文件)。-sd開關建立服務描述符(services.xml文件)。-ssi開關爲服務框架建立一個接口。-uw開關打開傳入和傳出服務操做的參數,以建立更天然的編程接口。apache

運行WSDL2Java後,服務文件應位於build / service。若是直接使用WSDL2Java生成代碼,則須要修改生成的框架以實現服務(若是使用「ant generate.service」,則完成的框架將自動複製到生成的框架上)。打開build / service / src / samples / quickstart / service / jibx / StockQuoteServiceSkeleton.java文件並對其進行修改,以將服務的功能添加到生成的方法中,如代碼清單8所示。編程

代碼8:定義服務框架文件服務器

package samples.quickstart.service.jibx;

import java.util.HashMap;

public class StockQuoteServiceSkeleton implements StockQuoteServiceSkeletonInterface {
    private HashMap map = new HashMap();

    public void update(String symbol, Double price) {
        map.put(symbol, price);
    }

    public Double getPrice(String symbol) {
        Double ret = (Double) map.get(symbol);
        if (ret == null) {
            ret = new Double(42.0);
        }
        return ret;
    }
}

如今,您能夠經過在build / service目錄中鍵入如下命令來構建項目:app

ant jar.server

若是一切順利,您應該在窗口中看到BUILD SUCCESSFUL消息,並在build / service / build / lib目錄中看到StockQuoteService.aar文件。將此文件複製到servlet引擎的webapps / axis2 / WEB-INF / services目錄。框架

services.xmlwebapp

<service name="StockQuoteService" scope="application">
    <messageReceivers>
        <messageReceiver mep="http://www.w3.org/ns/wsdl/in-out"
                         class="samples.quickstart.service.jibx.StockQuoteServiceMessageReceiverInOut"/>
        <messageReceiver mep="http://www.w3.org/ns/wsdl/in-only"
                         class="samples.quickstart.service.jibx.StockQuoteServiceMessageReceiverInOnly"/>
    </messageReceivers>
    <parameter name="ServiceClass">samples.quickstart.service.jibx.StockQuoteServiceSkeleton
    </parameter>
    <operation name="update" mep="http://www.w3.org/ns/wsdl/in-only">
        <actionMapping>urn:update</actionMapping>
    </operation>
    <operation name="getPrice" mep="http://www.w3.org/ns/wsdl/in-out">
        <actionMapping>urn:getPrice</actionMapping>
        <outputActionMapping>http://quickstart.samples/StockQuoteServicePortType/getPriceResponse</outputActionMapping>
    </operation>
</service>

 

注意,消息接受處理器類變了學習

<messageReceiver mep="http://www.w3.org/ns/wsdl/in-out"
                         class="samples.quickstart.service.jibx.StockQuoteServiceMessageReceiverInOut"/>
        <messageReceiver mep="http://www.w3.org/ns/wsdl/in-only"
                         class="samples.quickstart.service.jibx.StockQuoteServiceMessageReceiverInOnly"/>

 

您能夠經過查看服務列表來檢查以確保服務已正確部署,

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

您還能夠在如下位置檢查自定義WSDL:

http://localhost:8080/axis2/services/StockQuoteService?wsdl

schema

http://localhost:8080/axis2/services/StockQuoteService?xsd

 更多學習信息:JiBX code generation integration

相關文章
相關標籤/搜索