网上有一个查询手机号码归属地的WebService接口,以下就用这个接口作为例子
http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl
环境准备
首先下载apache-cxf
http://cxf.apache.org/download.html
下载apache-cxf-3.x.x.zip
解压后配置环境变量
CXF_HOME = F:\tools\apache-cxf-3.4.0
PATH 增加 %CXF_HOME%\bin
命令行执行
wsdl2java -v
返回Apache CXF 3.x.x即为配置成功
根据wsdl生成java类
打开cmd命令行执行以下命令 (红色部分根据实际情况替换,例如对方是ABS的接口就改为abs)
wsdl2java -p com.joyintech.interimpl.wsclient.webxml -verbose http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl
将会在当前目录生成com文件夹,复制到interimpl_xxx项目中
调用WebService接口
public class MobileCodeTest {
public static void main(String[] args) throws Exception {
MobileCodeWS ws = new MobileCodeWS();
MobileCodeWSSoap soap = ws.getMobileCodeWSSoap();
System.out.println(soap.getMobileCodeInfo("13966660000", null));
}
}
运行即可查询到13966660000的归属地信息:安徽 合肥 安徽移动动感地带卡
依赖包
客户端依赖的是javax.jws包和com.sun.xml.internal.ws.wsdl包,jdk7、jdk8在rt.jar里面都有
缺点
依赖wsdl文件、wsdl文件地址在注解中写死了