Axis2之axiom

来源:互联网 发布:游淼 双截棍 知乎 编辑:程序博客网 时间:2024/05/16 12:17

1.生成AXIOM的服务器文件
        1)与POJO不同的是,AXIOM的services.xml文件中明确指出了option参数
        2)另外MessageReceivers现在是RawXML
        服务类文件:
        1)方法:method(OMElement element),如果有返回值一律写成OMElement类型,没有返回void
        2)调用OMElement对象的创建与脱管方法
        3)获取参数,处理成文本类型:OMElement symbolElement = element.getFirstElement();
        4)业务逻辑处理返回结果:
                a)创建OMFactory
                b)根据类型的方法和参数创建OMELement类型的对象
                c)添加参数值到参数中,添加参数到方法中
        如果没有返回值:
        3)获取参数,如果多个参数
                a)先获取第一个参数firstEle
                b)根据firstEle调用getNext()获取下一个参数
                c)将这些参数都处理成文本类型
        4)处理业务逻辑:
2.生成AXIOM的客户端:是按指定方式写成java类,而不再是命令行生成。
        用到的相关类:
        axiom.om:OMElement,OMFactory,OMAbstractFactory,OMNamespace
        axis2:Constants,EndpointReference
        client:Options,ServiceClient
        生成步骤为:
        1)定义一个静态方法:对应服务器中可调用的方法,返回一个OMElemnt对象。
           比如:服务器上:OMElement getPrice(OMElement element)
           对应生成客户端方法:OMElement getPricePayload(String symbol)
        2)创建一个OMFactory工厂
        3)根据名称空间和方法名(同参数名)创建一个OMElement对象:名称空间为
        4)将参数值添加到OM参数中
        5)将参数添加到本方法,非字符串类型要转换成字符串类型再添加
3.调用规则:
        1)创建一个服务器客户端的对象:ServeClient sc
        2)设置sc的交互信息:setOptions(options)--包括:要引用的服务(去掉?wsdl部分的路径)和传输协议
        3)调用客户端生成的方法:
                如果无返回值:用sc.fireAndForget(客户端生成的方法);
                如果有返回值:用sc.sendReceive(客户端生成的方法),并且进行文本值的转换

原创粉丝点击