微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

清风教你手把手-写WebService客户端代码Java版本

网上有很多类似webservice的一些教程,但感觉都不太实用,哪怕你把helloworld写再优雅,再深奥,到了实际商业应用,还是会有各种各样的问题。这里清风讲一下webservice的客户端开发

 

工作上设计到webservice的开发,多半是调用三方的webservice服务。好了,废话不多说,进入正题

 

我们以这个查询电话归属地为例来进行讲解,如何调他的服务,来获取我们需要的信息

http://www.webxml.com.cn/WebServices/MobileCodeWS.asmx

(PS.目前这个webservice是免费并且可用的,可能别人会收费,可能会撤服务,如果真是这样,大家可以换一个,网上这类服务也不少)

 

编码webservice代码,首先需要拿到服务端的wsdl文件,何为wsdl文件,这个大家百度吧,这里就不说了。

一般服务的wsdl文件,都是在服务链接的后面加上“?wsdl”,以我们这个demo为例,他的wsdl文件就是 http://www.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl

 

生成客户端代码,也封很多种,这里我们讲解比较主流的一种,用cxf来生成

cxf是Apache的顶级项目,下载地址如下:http://cxf.apache.org/download.html

我下的是最新版 apache-cxf-3.0.3-src.zip,大家直接下最新版的,应该也没什么问题

 

下好了之后,进入apache-cxf-3.0.3\bin目录,可以看到有一个指令是 wsdl2java

 

在这个目录下,打开命令行,输入指令

wsdl2java -p com.cug.client -encoding utf-8 http://www.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl

 

-p 是指定包名

-encoding 是指定编码方式(主要是针对注释,有的注释是中文,不加的话,就会显示乱码,对代码没影响)

然后接下来就是接上wsdl文件的地址。wsdl文件也可以下载到本地,一样的效果,按自己情况选择

 

执行完后,就会在当前目录下,生成客户端代码了。

这个包里面,就全是生成好的客户端代码


 

命名比较规范的服务端,一般你生成好了,会有一个类叫XXXXSoap。这个类就是你需要使用的类,如果没有,那就要自己找找看了(后面我会附上全部代码供大家参考)

 

接下来就是我们自己的功能代码了,这里我是通过static来进行单例管理。也可以托管给spring管理,这里我不贴出来了,不然spring的配置又一大推,太繁琐了。大家自己google一下,很容易

public class SoapClient {

	private static MobileCodeWSSoap soap;
	
	static{
		JaxWsProxyfactorybean factory = new JaxWsProxyfactorybean();
		factory.setAddress("http://www.webxml.com.cn/WebServices/MobileCodeWS.asmx");
		factory.setServiceClass(MobileCodeWSSoap.class);
		soap = (MobileCodeWSSoap) factory.create();
	}
	
	public static void main(String[] args) {
		String info = soap.getMobileCodeInfo("13512757811",null);
		System.out.println(info);
	}
}

 展示结果截图


OK,说完了,此处该有掌声,代码见附件 webservice.zip  

(PS.依赖是maven管理的)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐