• 2.5 Apache Axis2 快速学习手册之JiBx 构建Web Service


    5. 使用JiBX生成服务(通过JIBX 命令将wsdl 生成 services )

    要使用JiBX数据绑定生成和部署服务,请执行以下步骤。

    通过在Axis2_HOME / samples / quickstartjibx目录中的控制台上键入以下内容,使用WSDL2Java实用程序生成框架

    %AXIS2_HOME%inwsdl2java.bat -uri resourcesMETA-INFStockQuoteService.wsdl -p samples.quickstart.service.jibx -d jibx -s -ss -sd -ssi -uw -o buildservice

    否则,只需在Axis2_HOME / samples / quickstartjibx目录中键入“ant generate.service”即可。

    选项-d jibx指定JiBX数据绑定。-s开关仅指定同步或阻塞调用。-ss开关创建服务器端代码(框架和相关文件)。-sd开关创建服务描述符(services.xml文件)。-ssi开关为服务框架创建一个接口。-uw开关打开传入和传出服务操作的参数,以创建更自然的编程接口。

    运行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目录中键入以下命令来构建项目:

    ant jar.server

    如果一切顺利,您应该在窗口中看到BUILD SUCCESSFUL消息,并在build / service / build / lib目录中看到StockQuoteService.aar文件。将此文件复制到servlet引擎的webapps / axis2 / WEB-INF / services目录。

    services.xml

    <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

     
  • 相关阅读:
    第七章 下
    第七章 上
    第六章 下
    第六章 上
    第五章 下
    linux 系统通过安装包安装mysql 8 步骤(非MariaDB)
    热烈庆祝博客换了新皮肤
    异常处理
    栈计算逆波兰表达式
    栈计算中缀表达式
  • 原文地址:https://www.cnblogs.com/xingyunblog/p/10330256.html
Copyright © 2020-2023  润新知