WebService客户端开发(Axis2 1.5)

简介:
WebService的客户端开发方式很多,如果单纯为了使用一个WebService,而不想依赖太多的框架,那么随便选择个WebService框架就可以了。
 
为了封装方便,代码复用,更好的性能,一般选择客户端存根方式来开发。
 
开发环境:
Idea-8.13
Axis2-1.5
JDK-1.5
 
一、建立java项目
 
建立项目后,创建存根存放包。
 
按照如下图配置:
 
 
一定要选择ADB方式,ADB绑定方式生成的类最少,易于管理。
 
二、生成代码
 
按照如上图设置后,点OK,就生成好了,连单元测试的代码都封装好了。
 
 
说真的,生成后的代码直接看就傻眼了,看不出个头绪来。
 
三、看懂Axis2存根代码
 
Axis2生成的存根代码虽然复杂,但是有规律的,只要你搞明白生成的原理,再看生成后的代码,就会恍然大悟。
 
生成原理:
 
1、Axis将每个发布的服务生成一个对应的存根类,比如原来我的服务名为myws,那么生成后的存根就是MywsStub。
 
2、Axis将服务中每个方法生成一个存根下的内部类。
比如:
在服务端有这样的方法:public String doSomething(String taskname)
那么,生成的客户端中会有这样一个类:
MywsStub.DoSomething
这个类中还有自己的成员,成员即为原方法的参数。
 
四、封装客户端代码
 
一般来说,生成的WebService客户端代码都相当的乱,如果不懂规律,根本无法阅读。为了更好更方便更容易的调用WS服务,需要对客户端代码做进一步的封装。封装的点如下:
 
1、将存根中固定ip、端口改为变量。同时需要修改存根的构造方法。
2、构建一个和服务端对等的客户端类,并在其中的每个方法中再增加两个参数:ip和端口。
3、根据生成原理对客户端代码做更进一步封装。
4、发布客户端的jar。
 
按照以上的步骤,修改存根的构造方法。
并做进一步封装,封装代码如下:
/** 
* WS客户端封装代码 

* @author leizhimin 2009-8-5 13:10:23 
*/
 
public  class MywsClient { 
         public String doSomething(String taskname,String wsip,String port)  throws Exception { 
                MywsStub stub =  new MywsStub(wsip,port); 
                MywsStub.DoSomething opt =  new MywsStub.DoSomething(); 
                opt.setTaskname(taskname); 
                 return stub.doSomething(opt).get_return(); 
        } 

         public  static  void main(String[] args)  throws Exception { 
                MywsClient client =  new MywsClient(); 
                String rs = client.doSomething( "xxx", "192.168.14.117", "8080"); 
                System.out.println(rs); 
        } 
}
 
运行其中main测试方法如下:
xxxis finished! 

Process finished with exit code 0
 
看看客户端测试截图:
 
 
看看服务端tomcat的响应:
 
 
到此,客户端开发过程就结束了。


本文转自 leizhimin 51CTO博客,原文链接:http://blog.51cto.com/lavasoft/187993,如需转载请自行联系原作者
相关文章
|
XML Java Maven
WebService客户端调用的5种常见方式
本文介绍了在Java中创建和调用WebService的方法,包括服务端的搭建、配置类的添加以及客户端的多种调用方式(如使用JDK原生代码、wsimport命令、动态调用、代理工厂及HttpClient)。文中详细展示了每种方法的实现步骤和示例代码,强调了服务端与客户端参数实体类字段的兼容性,并推荐使用代理工厂方式进行调用。
3934 0
WebService客户端调用的5种常见方式
|
缓存 应用服务中间件 数据库
Python Web Service开发及优化
随着互联网的快速发展,Web服务已成为现代技术的核心。Python作为一种功能强大且易于学习的编程语言,在Web服务开发领域占据着重要地位。Python Web服务开发的重要性在于它能够提供高效、可扩展且易于维护的解决方案。本篇博客将探讨如何使用Python的Flask框架、Gunicorn WSGI服务器和Nginx网页服务器来实现高性能的Web服务。
|
Java API Apache
Apache CXF生成WebService的客户端
Apache CXF生成WebService的客户端
644 0
|
XML Java 应用服务中间件
WebService - Axis2基于JAX-WS开发WebService并发布多个WebService
WebService - Axis2基于JAX-WS开发WebService并发布多个WebService
405 0
|
Java 应用服务中间件 Spring
WebService - Axis2使用services.xml进行开发server与client(未与Spring整合)
WebService - Axis2使用services.xml进行开发server与client(未与Spring整合)
535 0
|
Java 应用服务中间件 Spring
WebService - CXF开发Server和Client(main方法测试)
WebService - CXF开发Server和Client(main方法测试)
439 0
|
存储 测试技术
Loadrunner 脚本开发-利用Loadrunner生成Web service测试脚本
Loadrunner 脚本开发-利用Loadrunner生成Web service测试脚本
343 0
Loadrunner 脚本开发-利用Loadrunner生成Web service测试脚本
|
XML Java 数据库连接
webservice客户端运行报错was not registered for synchronization because synchronization is not active
webservice客户端运行报错was not registered for synchronization because synchronization is not active
1600 0
webservice客户端运行报错was not registered for synchronization because synchronization is not active
|
Java Android开发
哇!eclipse+webservice开发实例居然这样写(有源码可用)
哇!eclipse+webservice开发实例居然这样写(有源码可用)
398 0
哇!eclipse+webservice开发实例居然这样写(有源码可用)
|
XML 存储 测试技术
Loadrunner 脚本开发-soap_request函数介绍及WebService接口测试
Loadrunner 脚本开发-soap_request函数介绍及WebService接口测试
408 0