wsimport生成webservice客户端

在JDK的bin文件夹中,有一个wsimport.exe工具,可依据wsdl文件生成相应的类文件,将生存在本地这些类文件拷贝到需要使用的项目中,就可以像调用本地的类一样调用webService提供的方法。该工具可以用于非Java的服务器,如用C#编写的WebService,通过wsimport则生成Java的客户端实现。

配置jdk  class_HOMe  和path后 可直接用;

找到目标项目  工作空间 的src下 ,  如    

cd d:\workspace\项目名\src

执行:wsimport -keep http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl 

 

直接使用wsimport 通过该地址生成Java文件时,会报错。

因为该wsdl里面包含 ref = "s:schema" 这样的引用。而jaxb是不支持的。所以需要手动将该wsdl下载下来 另存为wsdl文件,打开后修改:

将所有的<s:element ref="s:schema" /> <s:any />改成 <s:any minOccurs="2" maxOccurs="2"/>,一共有三处需要修改,建议查找<s:element ref="s:schema" />,

修改时把<s:any />也要删掉。

 

生成客户端代码 一定要注意 MobileCodeWS中 wsdllocation 要把 本地地址 修改为 http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl 

-----调用方法

public static void main(String[] args) {
     //创建一个MobileCodeWS工厂
    MobileCodeWS factory = new MobileCodeWS();
   //根据工厂创建一个MobileCodeWSSoap对象
   MobileCodeWSSoap mobileCodeWSSoap = factory.getMobileCodeWSSoap();
   //调用WebService提供的getMobileCodeInfo方法查询手机号码的归属地
   String searchResult = mobileCodeWSSoap.getMobileCodeInfo("15589954472", null);
   System.out.println(searchResult);

}

 

posted on 2017-06-13 15:33  李丶小翼  阅读(169)  评论(0编辑  收藏  举报

导航