欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

清风教你手把手-写WebService客户端代码(Java版本) 博客分类: java清风教你手把手  

程序员文章站 2024-03-24 10:55:40
...

网上有很多类似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文件也可以下载到本地,一样的效果,按自己情况选择

 

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

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


清风教你手把手-写WebService客户端代码(Java版本)
            
    
    博客分类: java清风教你手把手  

 

命名比较规范的服务端,一般你生成好了,会有一个类叫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);
	}
}

 展示结果截图


清风教你手把手-写WebService客户端代码(Java版本)
            
    
    博客分类: java清风教你手把手  

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

(PS.依赖是maven管理的)

  • 清风教你手把手-写WebService客户端代码(Java版本)
            
    
    博客分类: java清风教你手把手  
  • 大小: 9.2 KB
  • 清风教你手把手-写WebService客户端代码(Java版本)
            
    
    博客分类: java清风教你手把手  
  • 大小: 22.9 KB