第二次实习--java客户端调用webservice
在上一篇博客中简单介绍了我实习的工作项目,主要的工作就是java和c++的交互,利用的就是webservice;博客中介绍了如何利用java生成webservice,这篇博客接着说如何利用java调用webservice。
我在实习中主要用的是axis2工具来实现java的webservice调用。
我比较常用的两种方法一个是直接利用RPCServiceClient的invokeBlocking方法,另外一种是OMAbstractFactory的createOMElement方法。其实这两种方式本质是一样的都是处理xml。因为webservice的基石就是xml。如果你用一个抓包工具来查看相关传输协议的传输信息的话,你会发现,其实这两种方式的执行过程都是通过互相传送xml数据来进行相关的webservice方法调用的。
主要过程就是java通过上面的方法把webservice的xml信息接收到,之后在把调用方法的参数信息填写到xml中,之后webservice服务端就通过你所填写的参数,执行相应的方法,返回相应的数据到xml中,之后java客户端进行解析之后获得相应的数据。这就是简单的一个执行流程。
知道执行流程之后,我们就要说说这两种方法的具体使用了。
首先导入jar是必须的,还是axis2的jar,不介绍怎么弄了,比较简单。
第一种方法:
try { Documentdoc = DocumentHelper.parseText(getResultByCode(params, paramValues,method)); Elementroot = doc.getRootElement(); Elementrn = root.element("s"); // 节点名 System.out.println(rn.getData()); return (String)rn.getData(); } catch(DocumentException e) { // TODOAuto-generated catch block e.printStackTrace(); System.out.println("解析出错!"); return"解析出错!"; }
这一步就是我们通过dom4j来解析我们所需要的数据了。这个就不详细介绍了。
到这一步之后我们就通过java成功调用了webservice。其实不是非常困难,主要还是原理上明白怎么个处理流程。
希望通过这两篇博客的整理,大家能够会使用axis2创建webservice和利用axis2调用webservice!