axis2五种创建服务方式的比较

AXIOM:Axis2 Object Model,Axis2对象模型

Axis2 对象模型(AXIs2 Object Model,AXIOM)是 Axis2 的基础,任何 SOAP 消息在 Axis2 中都表示为 AXIOM。AXIOM 相对于其他 XML 表示形式的优势在于,它基于 pull 解析器技术,而其他大多数则基于 push 解析器技术。pull 与 push 的主要不同之处在于,在 pull 技术中,调用者对解析器具有完全控制权,可以要求下一个事件;而对于 push,当要求解析器继续处理时,它将触发事件,直到达到文档最后为止。

由于 AXIOM 基于 pull 解析器技术,因此具有“随需应变构建”功能,仅在被要求时才会构建对象模型,而且,如果需要,可以直接从 AXIOM 访问基础 PULL 解析器并对其加以使用,而不用构建对象模型。

ADB: Axis2 Databinding Framework Axis2数据绑定框架

JiBX:Binding XML to Java Code 提供灵活的绑定映射文件实现数据对象与XML文件之间的转换

 创建服务的五种方式

部署Plain Old Java Objects(POJO);

使用AXIOM的OMElement构建服务;

使用Axis2 Databinding Framework(ADB)生成服务;

使用XMLBeans生成服务;

使用JiBX生成服务。

实现方式

创建方式

应用文档对象模型解析(消息绑定)

   应用(数据绑定框架)解析

 (xml to DO) 可插入的数据绑定

POJOs

pojo结合rpc模式

AXIOM

     POJOs

     POJO+RPC

 优点:自己写客户端,容易出错,不用熟悉WSDL。

 缺点:用此方法进行调试不容易

AXIOM

axiom api从底层写

AXIOM

       无

 优点:可以进行高效的 SOAP 消息处理

 缺点:全部自己实现,不现实。

ADB

从wsdl生成

相应框架,

然后填写相

应逻辑

AXIOM

      ADB

  开发符合软件工程的过程,先写设计,定接口  (写WSDL)然后再实现。用WSDL生成代码,不用关  心底层的调用。

XMLBeans

AXIOM

      XMLBean(BEA)

JiBX

AXIOM

       JiBX

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Axis2调用WebService服务需要以下步骤: 1. 下载Axis2库 首先需要下载Axis2库,可以从官方网站或者Maven仓库中获取到Axis2的jar包。下载好后,需要在项目中引入Axis2相关的jar包。 2. 创建客户端代理 使用wsdl2java命令,可以根据服务端的wsdl文件生客户端代码。命令格式如下: ``` wsdl2java -uri http://localhost:8080/axis2/services/MyService?wsdl -p com.example.client -d /path/to/output ``` 其中,-uri参数指定服务端的wsdl文件地址,-p参数指定生的客户端代码的包名,-d参数指定生的客户端代码的输出目录。 生的客户端代码包括服务端的接口类、接口实现类、客户端代理类等。 3. 创建客户端 创建客户端的代码如下: ``` // 创建服务地址 String url = "http://localhost:8080/axis2/services/MyService"; // 创建服务代理 MyServiceStub stub = new MyServiceStub(url); // 调用服务方法 MyServiceStub.MyMethod request = new MyServiceStub.MyMethod(); request.setParam1("param1"); request.setParam2("param2"); MyServiceStub.MyMethodResponse response = stub.myMethod(request); ``` 其中,url参数指定服务地址,MyServiceStub是客户端代理类,MyMethod是服务端的方法,MyMethodResponse是服务端方法的返回值。 4. 调用服务 调用服务的代码如下: ``` // 创建请求消息 OMFactory fac = OMAbstractFactory.getOMFactory(); OMNamespace omNs = fac.createOMNamespace("http://example.com", "ns"); OMElement method = fac.createOMElement("myMethod", omNs); OMElement param1 = fac.createOMElement("param1", omNs); param1.setText("param1"); method.addChild(param1); OMElement param2 = fac.createOMElement("param2", omNs); param2.setText("param2"); method.addChild(param2); // 创建服务客户端 ServiceClient serviceClient = new ServiceClient(); Options options = new Options(); options.setTo(new EndpointReference(url)); serviceClient.setOptions(options); // 调用服务 OMElement response = serviceClient.sendReceive(method); ``` 其中,OMFactory和OMNamespace是Axis2提供的类,用于构建SOAP消息。OMElement是SOAP消息的元素,addChild方法用于添加子元素。ServiceClient是Axis2提供的服务客户端类,Options类用于设置服务调用的选项,包括服务地址、超时时间等。sendReceive方法用于发送请求消息并接收服务端的响应消息。 以上就是使用Axis2调用WebService服务的基本步骤。需要注意的是,调用服务时需要根据服务端的要求构建SOAP消息,具体内容需要根据服务端的接口文档进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值