加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

WebService客户端开发(Axis2 1.5)

发布时间:2020-12-17 02:10:42 所属栏目:安全 来源:网络整理
导读:WebService客户端开发(Axis2 1.5) ? WebService的客户端开发方式很多,如果单纯为了使用一个WebService,而不想依赖太多的框架,那么随便选择个WebService框架就可以了。 ? 为了封装方便,代码复用,更好的性能,一般选择客户端存根方式来开发。 ? 开发环
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的响应:
?

?
到此,客户端开发过程就结束了。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读