网上有一个查询手机号码归属地的WebService接口,以下就用这个接口作为例子
http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl

环境准备

首先下载apache-cxf
http://cxf.apache.org/download.html
image.png

下载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项目中
image.png

调用WebService接口

  1. public class MobileCodeTest {
  2. public static void main(String[] args) throws Exception {
  3. MobileCodeWS ws = new MobileCodeWS();
  4. MobileCodeWSSoap soap = ws.getMobileCodeWSSoap();
  5. System.out.println(soap.getMobileCodeInfo("13966660000", null));
  6. }
  7. }

运行即可查询到13966660000的归属地信息:安徽 合肥 安徽移动动感地带卡

依赖包

客户端依赖的是javax.jws包和com.sun.xml.internal.ws.wsdl包,jdk7、jdk8在rt.jar里面都有

缺点

依赖wsdl文件、wsdl文件地址在注解中写死了