下面介绍一下使用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
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
谷歌云计算8大关键问题
谷歌、微软、雅虎……差不多每个科技公司都在竞相推出云计算,这无疑是件好事情,意味着更为轻便的客户端和存放在服务器上供全球任意地点用户访问的数据,我们只需要……
-
建立整合的IT应用使用环境 提高业务工作效率(一)
企业内部不断增加的IT应用在提高某些工作自动化的同时,影响了企业级业务流程的效率和灵活性。而IBM Workplace技术实现了多个IT应用的集成,为使用者提供高效……
-
不断发展的Web 2.0应用
关于使Web 2.0的应用程序更可靠你有何建议?我认为模拟是不断变化的Web 2.0的应用服务的关键,因为在一个相对丰富的客户端和服务端环境存在相互依存关系……
-
怎样转换WSDL创建的Java服务.NET客户端?
我要从.NET客户端调用一个Java Web服务。Java Web Service是基于Apache-Axis使用的JBoss。我怎样转换WSDL创建的Java服务.NET客户端?