WebService学习笔记

246 阅读3分钟

初识WebService

最近小编在项目中要调用别人的接口,但是发现这个接口文档的方式非常的奇怪,因为后边有?wsdl,然后就顺着这个wsdl小树根,使我看到了WebService这棵大树。
在这里插入图片描述

WebService是什么

www.cnblogs.com/sandswitch/…
推荐这篇博客给大家,写的非常的详细,通俗的理解来说,webservice就是两个系统的远程调用,因为现在越来越多的功能需要我们做成软件,单一的软件已经不能满足我们的需求,那么我们就需要去调用别人的信息,但是自己写代码非常的麻烦和费时费力,所以webservice就出现了,我们只需要几句代码,就可以在别的系统远程获取我们需要的信息,真是太方便了!

那么webservice究竟包含什么东西呢,和我们平常的接口有什么不同呢?

之前的接口小编都是在前端调用,利用ajax,接口就是非常简单,地址/参数,就可以访问到了,这样的接口是http接口,但是现在这个接口呢,跟我们之前的接口不太一样,如下图:接口后边没有直接跟方法,而是“?wsdl”,这样的借口就是webservice接口,那么两种接口有什么区别呢?请看我推荐的这篇博客叭~
www.cnblogs.com/leeego-123/…

那么这样的webservice接口我们客户端需要怎么去调用?
(文档里接口的亚子↓↓↓)
在这里插入图片描述

如何调用webservice接口

有四种方式:
1.通过wsimport/cxf 生成客户端代码后调用本地的接口和方法即可。

2.通过客户端编程的方式调用

3.通过ajax调用 (js+XML)

4.通过URLConnection调用

具体详情可以看我推荐的第一篇博客,写的非常的详细,我也只是尝试了两种方法,能力有限,所以不在这里赘述。
这里主要分享我成功的一种方式:也就是第1种方法,通过cxf生成客户端代码后调用本地的接口和方法返回数据。

webservice生成客户端代码调用接口和测试

1.下载apache cxf的包,如apache-cxf-3.2.4,地址cxf.apache.org/download.html
(来自别人博客的图:↓↓)
在这里插入图片描述
2. 解压 apache-cxf-3.2.4.zip 至某一目录,eg__ D:\soft_install_work\apache-cxf-3.2.4

3.设置环境变量
3.1 CXF_HOME=D:\apache-cxf-2.7.10
3.2 在path后面加上 %CXF_HOME%/bin;

4.cmd 中运行 wsdl2java 工具
在cmd命令中输入wsdl2java,如果有提示usage,就表明配置成功
在这里插入图片描述
5. 在cmd命令中输入:wsdl2java -d D:\src -client api.xxx.cn/****/servic…

其中D:\src是你要保存到你自己项目里的路径
api.xxx.cn/****/servic… 是对接方给你的接口
此时便可以在 D:\src路径下生成 wsdl 代码
在这里插入图片描述
在项目里:(注意这些是生成的客户端代码,并不是人家的源代码喔)
在这里插入图片描述
6.测试接口:
代码如下,类似于我们日常调用接口,和调用方法,就是当成是自己的接口方法就可以了。
根据接口文档,接口是橘色框框,方法是粉色框框,参数是蓝色框框。
所以
1.实例化接口
2.实例化SyncAllDataServicePortType(包含方法的类),并复制接口.getPortType
3.调用方法,有参数将参数直接写括号里。
4.打印返回的xml/json文件
在这里插入图片描述

初识webservice接口,如有不正确,还请批评指正。