深入剖析Axis2中返回值为复杂自定义类型值【步步逼近实践篇】

本文深入探讨了在Axis2中如何处理和传递复杂及自定义类型的对象,例如User对象。通过示例代码展示了服务器端创建User对象并返回的过程,以及客户端如何接收并转换成User对象。讲解了SOAP消息的结构,并指出返回值是根据WSDL生成的,解析SOAP消息时Axiom提供了自动拼接对象的功能。最后预告了下节课将讨论参数为复杂定义类型的情况。
摘要由CSDN通过智能技术生成
  问:Axis2中到底能否传递复杂以及自定义对象?
  答:肯定可以
 
  那如何传递呢?在开发过程中,基本类型已经不能满足要求。所以才有有相应的List,Map,以及User对象,Dog对象等等。
  比如传递User对象,我们想象一下,到底我们该怎么样,把这个对象传递过去呢?我们再根据前面讲的Webservice传递协议,该如何办呢?实际上发给服务器中是怎么样的格式呢?
  在做Webservice时,肯定很好奇,到底这个东东是如何传递过去的?就宛如,我们学计算机时,计算机处理的信息全部都是二进制,当我们问那图片,视频,怎么运作的在计算机?老师统统告是二进制。虽然我们知道二进制是0011这种形式,但是不是仍然有种想钻到计算机中,探个究竟,想真实的体会,或亲眼见识一下?
    所以呢,把抽象的东西具体化,在真实的环境中再现,这样才能深入理解其中的原理。

  那我们前面也说过,我们传入一个参数为int的方法,其实就是一段soap消息。那一个我们自定义对象,是如何传递呢?User对象在生成的wsdl中,其实是这样的一段代码:
 
<xs:complexType name="User">
<xs:sequence>
  <xs:element minOccurs="0" name="age" typke="xs:int" />
  <xs:element minOccurs="0" name="id" type="xs:long" />
  <xs:element minOccurs="0" name="name" nillable="true" type="xs:string" />
</xs:sequence>
  </xs:complexType>
   再复杂的对象,实际上也是有基本类型组成。那我们看一下再调用时,传递的soap消息是如何的?
  那接下来进入我们的正题,对于复杂类型参数传递。
    我们实际上使用axiom方式调用服务。这种方式,同时也是Axis2的不同于Axis的一个新特性。
  首先我们拿一个例子做测试,深入剖析返回内部的传递。
  第一:测试返回值为自定义对象User对象。
  服务器端,还是按照上传的文档开发。方法如下:
 
 public User getUser()
     {
           User u= new User();
           u.setId(100);
           u.setName( "123ee");
            return u;
     }
 
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值