Webservice实践(二)Webservice 客户端开发

本文介绍了一种基于Webservice的客户端开发流程,包括获取并解析wsdl文档、使用wsimport工具生成Java接口类、搭建客户端工程及实现翻译功能的具体步骤。

现在我们首先进行客户端开发的实践,从客户端实践来了解一下webservice的应用场景。比如说现在已经有一个webservice服务,提供的翻译方面的功能服务(主要是免费的webservice接口现在很多都被封了),我们需要编写一个客户端来使用这个公网可以访问的webservice服务。

一、目标:

通过编写一段客户端代码来调用webservice服务

掌握开发客户端的一般步骤和过程

二、客户端开发

2.1 先了解提供服务的webservice的情况

http://fy.webxml.com.cn/webservices/EnglishChinese.asmx这个网址一个webservice服务提供者,直接打开着网址,可以看到如下界面:



我们可以点击一下其中的接口(服务),看是否可以正常工作

点击调用,可以看到这个接口返回的字符串

2.2  生成wsdl文件

上一小节验证了这个webservice接口时可以工作的,接下来,我们需要将这个服务的接口文档复制到本地,在asmx 的url后,加上 ?wsdl 就可以用浏览器打开wsdl信息页面。 http://fy.webxml.com.cn/webservices/EnglishChinese.asmx?wsdl

这个URL打开后,呈现下面这样的信息

这个保存到本地目录(如果是用chrome,右键就有另存为菜单),注意保存的后缀要改为wsdl

2.3 wsdl 文档编译

wsdl文档的编译,需要用到java自带的wsimport 程序,进入wsdl文档所在目录(注意目录名不能有空格,因为命令行操作会将空格当做参数的分割符)。本例中放入 e盘的tmp目录,通过命令行进入这个目录后,执行下面命令:C:\jdk1.6.0_43\bin\wsimport  -keep  EnglishChinese.asmx.wsdl

运行报错了,19行和105行,都有报告schema 问题。我们可以对这个位置的信息进行一个替换操作修改wsdl文档的部分内容: <s:element ref="s:schema" /><s:any /> 替换成 <s:any minOccurs="2" maxOccurs="2"/>


  替换完成后,我们再次执行上次命令,现在不报错了。

2.4  建立客户端工程

首先建立一个工程,StudyWebserviceCli,在这个工程里面,将刚才接口包拷贝进来

然后,建立一个client应用类 TranslateWsCli

package com.study.webservice.client;

import java.util.List;

import cn.com.webxml.ArrayOfString;
import cn.com.webxml.EnglishChinese;
import cn.com.webxml.EnglishChineseSoap;

public class TranslateWsCli {

	public static void main(String[] args) {

		// 创建一个EnglishChinese工厂
		EnglishChinese factory = new EnglishChinese();

		// 根据工厂创建一个EnglishChineseSoap对象
		EnglishChineseSoap translateWsSoap = factory.getEnglishChineseSoap();

		// 调用WebService提供的translatorSentenceString方法获取"工作"的中英文造句
		ArrayOfString translateInfo = translateWsSoap
				.translatorSentenceString("工作");

		//将ArrayOfString 对象转换成List
		List<String> listString = translateInfo.getString();

		// 遍历翻译的info信息
		for (String stringinfo : listString) {
			System.out.println(stringinfo);
			System.out.println("------------");
		}
	}

}
现在我们运行一下,可以看到与2.1 soap测试中返回的内容是一致的。

、小结

webservice 客户端的开发步骤大致如下:

1、 获取web服务的 asmx ,并通过这个获取到 wsdl 文档

2、 采用 wsimport 工具导入 wsdl文档,获取到接口的java包或者文件

3、 建立一个工程,引入上一步产生的接口包,并进行客户端开发

客户端程序开发的大致步骤

1) 创建一个接口服务工厂

2) 从这个工厂里面获取soap 接口

       3)  调用这个接口,获取返回对象

       4)    对返回对象进行数据处理



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值