博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Webservice实践(二)Webservice 客户端开发
阅读量:2522 次
发布时间:2019-05-11

本文共 2080 字,大约阅读时间需要 6 分钟。

现在我们首先进行客户端开发的实践,从客户端实践来了解一下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
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)    对返回对象进行数据处理

你可能感兴趣的文章
HashMap的实现
查看>>
互斥锁 synchronized分析
查看>>
java等待-通知机制 synchronized和waity()的使用实践
查看>>
win10 Docke安装mysql8.0
查看>>
docker 启动已经停止的容器
查看>>
order by 排序原理及性能优化
查看>>
Lock重入锁
查看>>
docker安装 rabbitMq
查看>>
git 常用命令 入门
查看>>
关闭selinx nginx无法使用代理
查看>>
shell 脚本部署项目
查看>>
spring cloud zuul网关上传大文件
查看>>
springboot+mybatis日志显示SQL
查看>>
工作流中文乱码问题解决
查看>>
maven打包本地依赖包
查看>>
spring boot jpa 实现拦截器
查看>>
jenkins + maven+ gitlab 自动化部署
查看>>
Pull Request流程
查看>>
Lambda 表达式
查看>>
函数式数据处理(一)--流
查看>>