WebService客户端开发(Axis2 1.5)

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的响应:
 
 
到此,客户端开发过程就结束了。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值