java webservice生成客户端代码并调用
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目录下运行命令:
- wsimport -keep -s D:\Workspaces -p com.cn.phone -verbose http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl
-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
<s:any />改成 <s:any minOccurs="2" maxOccurs="2"/>,一共有三处需要修改,建议查找<s:element ref="s:schema" />,修改时把<s:any />也要删掉
- wsimport -keep -s D:\Workspaces -p com.cn.weather -verbose C:\Users\sun\Desktop\WeatherWS.xml
(4) 把生成的包拷贝到src目录下
- package com.cn.weather;
- import java.util.List;
- public class WeatherWsClient {
- public static void main(String[] args) {
- //创建一个WeatherWS工厂
- WeatherWS factory = new WeatherWS();
- //根据工厂创建一个WeatherWSSoap对象
- WeatherWSSoap weatherWSSoap = factory.getWeatherWSSoap();
- //调用WebService提供的getWeather方法获取南宁市的天气预报情况
- ArrayOfString weatherInfo = weatherWSSoap.getWeather("钓鱼岛", null);
- List<String> lstWeatherInfo = weatherInfo.getString();
- //遍历天气预报信息
- for (String string : lstWeatherInfo) {
- System.out.println(string);
- System.out.println("------------------------");
- }
- //获得中国省份、直辖市、地区和与之对应的ID
- ArrayOfString s = weatherWSSoap.getRegionProvince();
- List<String> list = s.getString();
- for (String string : list) {
- System.out.println(string);
- System.out.println("------------------------");
- }
- }
- }
转载自:http://blog.csdn.net/aqsunkai/article/details/51711087
java webservice生成客户端代码并调用的更多相关文章
- cxf webservice生成客户端代码及调用服务端遇到的问题
1. 从网上下载cxf开发的工具 apache-cxf-3.1.4.zip, 解压文件,找到apache-cxf-3.1.4\bin目录,里面包含一个wsdl2java文件 2. 设置环境变量 1. ...
- webservice 生成客户端代码
使用 jdk 自带工具 wsimport wsimport -keep http://webservice/url?wsdl
- webservice生成客户端代码
wsimport -d C:\Other\WSDL_JAVA_Code -keep -verbose -Xauthfile C:\Other\.txt http://XXXXXX
- 原生java调用webservice的方法,不用生成客户端代码
原生java调用webservice的方法,不用生成客户端代码 2015年10月29日 16:46:59 阅读数:1455 <span style="font-family: Aria ...
- java 使用CXF将wsdl文件生成客户端代码命令java调用第三方的webservice应用实例
1.先下载cxf包https://download.csdn.net/download/suizhikuo/108112362.解压缩包,通过cmd命令进入到bin目录下(cd cxf\bin的路径) ...
- 利用wsdl2java工具生成webservice的客户端代码
1.JDK环境 2.下载apache-cxf发布包:http://cxf.apache.org/download.html 目前最新版本为3.2.6, 解压后如下: 解压发布包,设置CXF_HOME ...
- java实现WebService 以及客户端不同的调用方式
java 实现WebService 以及不同的调用方式 webservice: 就是应用程序之间跨语言的调用 wwww.webxml.com.cn 1.xml 2. ws ...
- WebService--CXF与Spring的整合(jaxws:endpoint形式配置)以及客户端调用(spring配置文件形式,不需要生成客户端代码)
一.CXF与Spring整合(jaxws:endpoint形式配置) 工具要点:idea.maven 1.新建一个maven项目 <?xml version="1.0" en ...
- cxf 生成客户端代码调用服务
cxf是另一种发布webservice的方式,与jdk提供的相比 jdk提供的是wsimport cxf 提供的是 wsdl2java- d 地址 根据http://www.cnblogs.com/f ...
随机推荐
- 转载:Java Lock机制解读
Java Lock机制解读 欢迎转载: https://blog.csdn.net/chengyuqiang/article/details/79181229 1.synchronized synch ...
- 创建只读账号oracle
1.创建用户,指定哪个表空间create user test2 identified by "123" default tablespace BDCDJ_XC temporary ...
- MySQL一千行笔记
/* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限验证登录MySQL */ mysq ...
- 为什么你需要少看垃圾博客以及如何在Python里精确地四舍五入
今天又有一个Python初学者被中文技术博客中的垃圾文章给误导了. 这位初学者的问题是: 在Python中,如何精确地进行浮点数的四舍五入,保留两位小数? 如果你在Google或者百度上搜索,你会发现 ...
- loadrunner-关联
1.什么是关联? 将服务器动态返回的值,保存成一个参数,供后面需要使用到 此参数的地方使用 PS:1.一定是服务器返回的 2.动态变化的,静态不需要关联 3.服务器需要校验的 4.保存成一个参数 5. ...
- 快乐!ajax入门(1)
今天试着默写ajax时出现了神秘的问题,出现如图所示的错误: 百度了一下,说是跨源问题,我以为放在同一个文件夹不也是同源嘛!结果打扰了,属实是弟弟,协议,域名,端口相同的算同源,其他的不是!!! 最后 ...
- 三剑客之awkd的基本使用
1.awk的使用 1.1 基本的awk执行过程 #passwd文件的第二行的第一列和第二列 [root@xiaojin oldboy]# awk -F ":" 'NR==2{pri ...
- OS模块学习
import os,sys s = os.getcwd() #获取当前工作目录,即当前python脚本工作的目录路径 # print(s) # os.chdir('..') #改变当前工作目录 # s ...
- linux挂载硬盘分区
[转]https://www.jb51.net/article/138204.htm 基本步骤:分区——格式化——挂载——写入文件 1.使用fdisk -l命令查看添加的硬盘名称,可以看到sdb ...
- jvm(一)类加载器
1.jvm的生命周期结束的几种情况 a.执行了System.exit()方法 b.程序正常执行结束 c.程序在执行过程中遇到了异常或错误而异常终止 d.操作系统出现错误 2.类加载过程 加载:查找并加 ...