wsimport命令介绍
在JDK的bin文件夹中,有一个wsimport.exe,这个工具依据wsdl文件生成相应的类文件,然后用这些类文件,就可以像调用本地的类一样调用WebService提供的方。该工具可以用于非Java的服务器,如:用C#编写的WebService,通过wsimport则生成Java的客户端实现。对于命令的使用方法,我们以开放的中文简体字与繁体字转换Web Service接口为例,如下:
在命令提示符中使用如下命令:
wsimport -keep -p com.zhj2f.client http://www.webxml.com.cn/WebServices/TraditionalSimplifiedWebService.asmx?wsdl
命令参数说明(这里直接介绍比较常用的):
| -d:生成客户端执行类的class文件的存放目录
| -s:生成客户端执行类的源文件的存放目录
| -p:定义生成类的包名
使用wsimport命令后,我们可以得到相应的代码文件,将其拷贝到你的项目中,即可使用,目录树结构如下所示:
测试:新建工程,并将com.zhj2f.client包拷到工程文件下,编写测试文件test.java,代码如下:
package test;import com.zhj2f.client.TraditionalSimplifiedWebService;
import com.zhj2f.client.TraditionalSimplifiedWebServiceSoap;public class test {
public static void main(String args[]){TraditionalSimplifiedWebService tsws = new TraditionalSimplifiedWebService();
TraditionalSimplifiedWebServiceSoap tss = tsws.getTraditionalSimplifiedWebServiceSoap();String res = tss.toTraditionalChinese("我是谁");
System.out.println(res);}
}
当然我们还可以使用上面同样的方法调用天气预报提供的开放webservice接口,只是天气预报的那个接口有点不同。如果我们直接使用wsimport
通过wsdl地址生存java 文件时,会报错。因为该wsdl里面包含 ref = "s:schema"
这样的引用。而jaxb是不支持的。所以手动将该wsdl下载(也就是网页另存为)下来做下修改,然后再生成java文件。
修改方法为:将所有的<s:element ref="s:schema"/>
改成 <s:any minOccurs="2"
maxOccurs="2"/>,并且删除<s:any/>。
然后再通过wsimport生成java文件,就可以正常使用了。
参考资料:
[1] http://www.cnblogs.com/simle/archive/2011/11/03/2233417.html
[2] http://blog.csdn.net/lun379292733/article/details/18035915
[3] 常用Web
Service汇总
【webservice】使用命令wsimport构建WebService客户端,布布扣,bubuko.com