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

Webservice实践(二)Webservice 客户端开发相关推荐

  1. 简:webservice服务端及客户端开发

    一.服务端开发 1️⃣接口 public interface WsServer {String sayHello(String name); } 2️⃣实现类 import javax.jws.Web ...

  2. WebService服务端与客户端开发

    最近客户提出了将我们做的系统接入到他们系统之中,方便他们进行集中管理这个需求,其中主要就是运用了WebService技术来进行系统之间的接入.在此记录一下整个WebService是如何嵌入我们系统的以 ...

  3. go实践二十 web开发--表单唯一token 表单验证 防止xss攻击 上传文件 cookie处理

    新建一个 testform2.gtpl 文件,内容如下: <!doctype html> <html lang="en"> <head>< ...

  4. SpringBoot——实现WebService接口服务端以及客户端开发

    文章目录 一.服务端代码开发 1.pom依赖 2.接口类 3.接口实现类 4.webservice配置文件 2.客户端开发 (1)pom依赖 (2)封装客户端方法clientUtil (3)调用接口类 ...

  5. SpringBoot整合WebService(服务端+客户端)

    SpringBoot整合WebService(服务端+客户端) 文章目录 SpringBoot整合WebService(服务端+客户端) 一.服务端 1.项目结构 2.创建好SpringBoot项目后 ...

  6. Java程序员从笨鸟到菜鸟之(一百零八)一步一步学习webservice(二)webservice基本原理

    本来这第二篇打算讲解"开发第一个基于XFire的webservice"的内容来着.但是想想.开发实例只是局限于了会用的层面上.如果想真正的理解webservice还是需要挖掘其原理 ...

  7. 【Electron】酷家乐客户端开发实践分享 — 软件自动更新

    作者:钟离,酷家乐PC客户端负责人 原文地址:webfe.kujiale.com/electron-au- 酷家乐客户端:下载地址 www.kujiale.com/activity/13- 文章背景: ...

  8. Spring和CXF整合发布WebService(服务端、客户端)

    参考Spring和CXF整合发布WebService(服务端.客户端) 转载于:https://www.cnblogs.com/timspace/p/11113576.html

  9. java的WebService实践(cxf)

    java的WebService实践(cxf) Java发布WebService,结合Spring,通过cxf的方式 难点:1.引用什么jar包: 1.创建接口 源码如下: package com.na ...

最新文章

  1. 云炬随笔20171202
  2. POJ 3264 Balanced Lineup(RMQ)
  3. 本地网页服务器 跨域,nodejs搭建本地服务器轻松解决跨域问题
  4. 冷室压铸机行业调研报告 - 市场现状分析与发展前景预测
  5. Android 数字格式化
  6. SQL错误Duplicate column name 'NAME'名字重复应使用别名
  7. 2018大学计算机答案,2018年大学计算机基础试题及答案
  8. 网站换服务器步骤,【大拿分享】六个步骤搞定更换网站服务器
  9. 为什么软件系统开发公司不会同意技术入股
  10. python爬取今日头条图片
  11. 注定平凡-----和will812
  12. 用netstat -ano查看本机端口详解
  13. Linux系统中的管道通信
  14. JS基础之强制类型转换
  15. 论文阅读Unsupervised Corpus Aware Language Model Pre-training for Dense Passage Retrieval
  16. misra c编码规范个人整理总结/misra c 2012中文版-个人总结-【方便查询】
  17. 促双碳|智慧能源管理解决方案
  18. 【洛谷】p5707上学迟到 C语言
  19. 匡威react是什么意思_react+zoom的神仙配置?这双如此牛掰的匡威似乎不如李宁?...
  20. web大作业介绍自己的家乡_四年级暑假作业

热门文章

  1. busybox telnetd: can't find free pty
  2. 海外饮食男女的买单哲学
  3. 码农提高工作效率-黄博文
  4. 数值优化(Numerical Optimization)学习系列-拟牛顿方法(Quasi-Newton)
  5. W7建WIFI基站-笔记本手机共享上网
  6. android安装Mysql服务,android手机可以作为mysql的服务器
  7. realtek-rtl8188eu(0bda:8179芯片)无线网卡,kali系统安装驱动
  8. 吸脂去眼袋效果好吗,吸脂去眼袋有副作用吗,不会告诉你的事!
  9. stm32f103c8t6单片机使用st-link/v2仿真器烧录程序的过程
  10. 面试必问的25道数据库测试题