了解使用wsimport命令生成webService客户端代码实例
来源:互联网 发布:买卖域名赚钱 编辑:程序博客网 时间:2024/06/07 15:26
这几天做项目需要调用别人给提供的服务接口,要用到这块,正好做个收藏:
wsimport简介
在JDK的bin文件夹中,有一个wsimport.exe工具,可依据wsdl文件生成相应的类文件,将生存在本地这些类文件拷贝到需要使用的项目中,就可以像调用本地的类一样调用webService提供的方法。该工具可以用于非Java的服务器,如用C#编写的WebService,通过wsimport则生成Java的客户端实现。常用命令如下:
- wsimport -keep -d D:\temp\d -s D:\temp\s -p com.map -verbose http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl
-keep:是否生成java源文件
-d:指定.class文件的输出目录
-s:指定.java文件的输出目录
-p:定义生成类的包名,不定义的话有默认包名
-verbose:在控制台显示输出信息
-b:指定jaxws/jaxb绑定文件或额外的schemas
-extension:使用扩展来支持SOAP1.2
wsimport实例
在此,推荐一个网站,提供了全面的WebService接口供参考:http://www.webxml.com.cn/zh_cn/web_services.aspx
在本地生成查询号码归属地的webService
(1) 进入网站找到
其中,.asmx网址说明了调用的方法、输入参数、返回数据,.wsdl是我们要用来生成代码的网址。
(2) 新建一个Java Project,工程创建好后,生成src目录
(3) cmd命令,进入jdk的bin目录下运行命令:
-s后的路径如果不是工程的src目录,需把生成的包拷贝到src目录下
刷新项目,便会看到我们生成的文件了
当我们点击几个java文件看时,是不是发现中文注释乱码了,如果想把源代码的编码变成UTF-8,可以下载一个工具:UTFCastExpress
http://download.csdn.net/detail/aqsunkai/9535166
(4) 在该路径下写测试类:
- package com.cn.phone;
- public class PhoneWsClient {
- public static void main(String[] args){
- //创建一个MobileCodeWS工厂
- MobileCodeWS factory = new MobileCodeWS();
- //根据工厂创建一个MobileCodeWSSoap对象
- MobileCodeWSSoap mobileCodeWSSoap = factory.getMobileCodeWSSoap();
- //调用WebService提供的getMobileCodeInfo方法查询手机号码的归属地
- String searchResult = mobileCodeWSSoap.getMobileCodeInfo("18512155752", null);
- System.out.println(searchResult);
- }
- }
运行main方法后:
在本地生成查询天气预报的webService
直接使用wsimport 通过该地址生成Java文件时,会报错。因为该wsdl里面包含 ref = "s:schema" 这样的引用。而jaxb是不支持的。所以需要手动将该wsdl下载下来做下修改,然后再生成java文件。
(1) 将页面另存为
(2) 将所有的<s:element ref="s:schema" />
<s:any />改成 <s:any minOccurs="2" maxOccurs="2"/>,一共有三处需要修改,建议查找<s:element ref="s:schema" />,修改时把<s:any />也要删掉
<s:any />改成 <s:any minOccurs="2" maxOccurs="2"/>,一共有三处需要修改,建议查找<s:element ref="s:schema" />,修改时把<s:any />也要删掉
(3) 运行命令:
(4) 把生成的包拷贝到src目录下
需要注意的是,要修改WeatherWS.java文件中wsdl的url,因为我们用的是本地文件生成的,要修改成网站的url:http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl
(5) 在该路径下写测试类
运行main方法后:
阅读全文
0 0
- 了解使用wsimport命令生成webService客户端代码实例
- 使用wsimport命令生成webService客户端代码实例
- 使用wsimport命令生成webService客户端代码实例
- 使用wsimport命令生成webService客户端代码实例
- 使用wsimport命令生成webService客户端代码
- 使用命令wsimport生成WebService客户端
- 使用JDK wsimport命令生成webservice客户端
- 使用wsimport命令生成客户端代码
- 使用wsimport生成WebService客户端
- 命令行wsimport 生成webservice客户端代码
- 使用命令wsimport构建WebService客户端
- 使用命令wsimport构建WebService客户端
- 使用命令wsimport构建WebService客户端
- 使用命令wsimport构建WebService客户端
- 使用JDK6 wsimport命令构建WebService客户端
- 使用命令wsimport构建WebService客户端
- 使用命令wsimport构建WebService客户端
- 使用命令wsimport构建WebService客户端
- 设计模式学习---第八节:工厂方法模式
- 【C++】浅析浅拷贝,深拷贝及写时拷贝(copy_on_write),模拟实现String类。
- NOIP前 基础字符串模板
- linux——ftp 服务
- SpringdataJpa JpaRepository
- 了解使用wsimport命令生成webService客户端代码实例
- Android中ANR的监测与定位
- C语言 MPI算法练习
- 1700X + GTX950 跑 CNN卷积神经网络面部表情识别实例代码
- lvm逻辑逻辑卷管理
- 双向链表实现访问频度递减
- Scala中的方法和函数
- java的对象与对象引用
- 线段树——51nod1466 三角巧克力