• 使用命令wsimport构建WebService客户端


    原文:http://www.cnblogs.com/ningvsban/p/3760085.html

    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汇总

  • 相关阅读:
    IOS无线客户端自动化测试
    junit 测试报错 java.lang.Exception: No runnable methods
    mysql varchar(128)可以存多少汉字
    求两个数的百分比
    日期转换
    两个 integer 值判断是否相等
    整洁代码之道——重构
    Eclipse里项目名有红叉,但是底下的每一个文件都没有红叉
    #dubbo# XML文件报错dubbo:XX解决方法
    String处理入门
  • 原文地址:https://www.cnblogs.com/xbq8080/p/6554397.html
Copyright © 2020-2023  润新知