Axis1.4 多参数传递(document/literal)

2008-12-3

  下面介绍一下使用Axis 1.4开发webservice服务中的多参数传递问题,使用document/literal的SOAP绑定协议。

  首先准备好Axis的环境,及Axis 1.4所需要的jar包,放到web工程下的lib目录下。

  待发布的服务接口方法是这样的:

  然后手写wsdl文件(可以使用eclipse插件WTP设计wsdl),如:

  使用build.xml生成服务器端和客户端的代码,build.xml 附后:

  然后将在服务器端的代码中将deploy.wsdd拷贝到WEB-INF/下,使用build.xml部署服务,可以访问wsdl描述(因为这一步的开发比较简单,基本上有了wsdl描述之后,都是自动生成的,网上也有一些描述,这里不再叙述)。

  上面的这种方式会遇到多参数传递问题,即concat方法有两个参数,但客户端只能传递一个参数到服务器端,相信很多人遇到这个问题,下面的解决方案就是解决此问题的。

  注意,这里使用的是document/literal绑定方式,如果是document/literal(wrapped)方法,可以实现多参数传递,但如果客户要求是document/literal方式,下面的做法是非常值得一看的。

  思路是将方法中的所有参数封装为一个对象,进行传递,这里需要做的是客户端传递参数需要封装,服务器端需要解析这个对象,听起来很麻烦,做起来是很容易的。

  待发布的方法现在变成 

  其中ConcatParam 封装了原来方法中的两个参数s1, s2,它是一个非常简单的javabean。

  我使用了由java到wsdl的转化,

  由eclipse插件WTP生成wsdl文件,如下:


 
  然后通过此wsdl生成客户端和服务器端代码,通过客户端访问服务器端,注意在客户端传递参数的时候需要封装,这样的话多参数的传递问题就解决了。

  附1:工程结构图。

  附2:build.xml

   出处:http://gocom.primeton.com/modules/newbb/item57929_57929.htm
来源:goCom构客网  
中国计算机用户协会和中国互联网协会共同发布《2008年度中国IT网络调查研究报告》,报告显示在“2008最受欢迎SOA产品”评选中,普元软件EOS产品以43%的得票率获选奖项……
2009年6月24日,中国电子技术标准化研究所(CESI)携手上海市政府、普元软件、复旦大学,邀请众多国际SOA相关标准组织成员及国内SOA厂商济济一堂,助力SOA中国标准制定,促进SOA产业进化。当此中国SOA产业的关键时刻,我们邀您共同见证!
2009年10月28日,全球领先的SOA中间件厂商普元软件对外正式宣布:公司成功获得共计1亿元人民币的战略投资。
当你开始飞的时候,时间就停止了,连同自己的呼吸也停止了,滑动的是蓝色的天空与皑皑的白雪,还有微微的风,这一切像是一幅幅水波组成的画面,被你起飞的巨大速度冲撞,破碎成色彩斑斓的碎片……
构客网
goCom构客网,全球首家SOA与面向构件社区