快速业务通道

用Axis开发基于Java的Web服务 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
。如下图所示:

用Axis开发基于Java的Web服务 - 编程入门网

用Axis开发基于Java的Web服务(4)

时间:2010-12-13 飞鹰

客户端服务访问编程

Axis提供了一套API来实现SOAP,从 http://localhost:8080/axis/docs/apiDocs/index.html可以看到Axis的API文 档。

其中,org.apache.axis.client.Call和 org.apache.axis.client.Service是两个比较常用的类,一般的客户端程序欲访 问一个Web Service时,都要生成一个客户端的Service对象和Call对象,在访问 服务之前,首先要对Call对象设置相应的参数,包括服务的位置、操作名、入口 参数、返回值类型等,最后调用Call对象的invoke方法访问服务。

以下 给出了一个客户端访问Web服务的例程——AXISTest.java:

文件AXISTest.java

package axisexercise;   import org.apache.axis.client.Call;   import org.apache.axis.client.Service;   import org.apache.axis.encoding.XMLType;   import javax.xml.rpc.ParameterMode;   /**   * @author 飞鹰   */   public class AXISTest   {   public static void main( String[] args ) throws Exception   {    Service service = new Service();   Call call = ( Call ) service.createCall();   //////////访问即时发布的Distance服务   //设置访问点   call.setTargetEndpointAddress( "http://localhost:8080/axis/Distance.jws" );   //设置 操作名   call.setOperationName( "convertMile2Kilometre" );   //设置入口参数    call.addParameter( "op1", XMLType.XSD_DOUBLE, ParameterMode.IN );   call.setReturnType( XMLType.XSD_DOUBLE );   Double d1 = new Double( 190 );   //调用服务    System.out.println( d1 + " 英里相当于 " +    call.invoke( new Object[] {d1} ) + " 公里!" );    //////////访问定制发布的Capacity服务   call = ( Call ) service.createCall();   //设置访问点    call.setTargetEndpointAddress( "http://localhost:8080/axis/services/Capacity" );    //设置操作名   call.setOperationName( "convertGallon2Litre" );   //设置入口参数    call.addParameter( "op1", XMLType.XSD_DOUBLE, ParameterMode.IN );   call.setReturnType( XMLType.XSD_DOUBLE );   d1 = new Double( 10.00 );   //调用服务    System.out.println( d1 + " 加仑相当于 " +    call.invoke( new Object[] {d1} ) + " 升!" );   } //main()   }/* AXISTest */

编译运行后运行可以看到以下 的结果:

190.0英里相当于305.71公里!

10.0加仑相当于45.46升 !

注意程序在访问即时发布的Distance服务和定制发布的Capacity服务 时的不同,前者的服务访问点地址为 http://localhost:8080/axis/HelloWorld.jws,而后者的则为 http://localhost:8080/axis/services/Capacity。

总结

Web Services是未来网络应用的发展方向,SOAP和WSDL是Web Services的核心协议, Axis给出了一个很好的SOAP实现,它使得开发Web Services应用变得轻松而有趣 。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号