第4章 WebService(理论)_第1页
第4章 WebService(理论)_第2页
第4章 WebService(理论)_第3页
第4章 WebService(理论)_第4页
第4章 WebService(理论)_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第4章章 Web Service课程回顾课程回顾uXPath 使用路径表达式在 XML 文档中进行导航uXPath常用的表达式如下n“/”从根节点选取,即绝对路径选择n“/”从选择的当前节点匹配选择文档中的节点,即相对路径选择n“”依据属性选择节点n使用谓词进行过滤n使用通配符选择未知节点n使用“|”选择多条路径uXQuery是XML文档的查询语言,它主要使用“FLWOR”表达式对XML格式的数据进行查询uXSL是XML的样式表语言,决定XML的输出和显示uXSLT是XSL转换,是XSL最重要的组成部分。使用它,可以将XML文档转换为其他格式的文档uXSLT常用的元素有n:定义模板n:用于提

2、取某个选定节点的值n:对节点进行循环n:把一个模板应用于当前的节点或者当前节点的子节点n:用于条件测试n:对结果进行排序n:表达多重条件测试本章内容本章内容uWeb Service工作原理uWeb Service的优势uWeb Service的创建uWeb Service的发布uWeb Service的调用本章目标本章目标u理解Web Service的工作原理u使用J2EE创建Web Serviceu发布自己的Web Serviceu在J2EE程序中调用Web Service什么是什么是WEB服务服务1、如果想在网页上显示天气预报怎么做? 天气预报天气预报如何实现实时预报?如何实现实时预报?什

3、么是什么是WEB服务服务2、购物网站的电子支付(安付通、支付宝等) , 是如何实现的? 使用安付通进行货款支付使用安付通进行货款支付电子支付服务是谁提供?电子支付服务是谁提供?网站如何来调用的呢?网站如何来调用的呢?多系统中共有功能多系统中共有功能uWeb服务器提供的Web服务购物网站购物网站1购物网站购物网站2需要结帐功能需要结帐功能需要结帐功能需要结帐功能提供结帐服务提供结帐服务服务提供者服务提供者什么是什么是WEB服务服务uWeb Service的出现:nWeb Service是为了实现“基于Web无缝集成”的全新概念n实现不同系统间的相互调用(语言无关、平台无关)购物网站购物网站1运行

4、运行C#程序程序服务提供者服务提供者运行运行Java程序程序使用服务的使用服务的客户端程序客户端程序提供服务的提供服务的应用程序应用程序与程序的开发语言无关与程序的开发语言无关与操作平台与操作平台(Windows、Linux)无关无关uWeb Service的定义:nWeb Service是一个应用程序,是能够用编程的方法通过Web调用来实现某个功能的应用程序nWeb Service支持Web协议,如:HTTP,TCP/IP,SMTP等uWeb Service的标准nXML数据格式nSOAP (简单对象访问协议) nWSDL(Web Service描述语言)Web Service定义定义服务调

5、用的客户端程序服务调用的客户端程序我要把我实现的功能告我要把我实现的功能告诉别人,让他们来调用诉别人,让他们来调用已经有人实现了这个功能,而且还告诉我如已经有人实现了这个功能,而且还告诉我如何使用这个功能,我可以直接调用了。何使用这个功能,我可以直接调用了。服务提供者服务提供者1. Web Service的工作原理的工作原理1.1 Web Service是什么 Web Service是基于网络的、分布式的模块化组件 Web Service技术组成XML和XSDSOAPWSDLXML是Web Service平台中表示数据的基本格式;XSD作为其数据类型系统 简单对象访问协议以XML形式提供了一个

6、简单、轻量的用于在分散或分布环境中交换结构化和类型信息的机制 Web服务描述语言用XML文档来描述Web服务 1.2 Web Service 的工作原理的工作原理u客户端阅读WSDL文档,以调用该Web Serviceu根据WSDL描述文档,生成一个SOAP请求消息,发送到Web服务器uWeb服务器再把这些请求转发给Web Service请求处理器u解析收到的SOAP请求,调用Web Service,然后再生成相应的SOAP应答。Web服务器得到SOAP应答,通过HTTP应答的方式把它送回到客户端1.3 Web Service的优势的优势 uWeb Servicen软硬件平台无关性n编程语言无

7、关性n部署、升级和维护Web服务简单nWeb服务使用者可以轻易实现多种数据、多种服务的聚合n成本低n数据不受防火墙阻挡小结小结uWeb Service的工作原理?uWeb Service有哪些优势?2.创建创建Web Serviceu在J2EE中创建Web Service可以分为以下3个步骤n创建Web Service Project n编写服务方法和相应接口 n编写相应的配置文件 2.1 创建 Web Service创建创建 Web Serviceu在J2EE中,使用xfire通过一个具体的实例来演示创建Web Service 创建Web Service工程创建XFire servlet和s

8、ervices.xml选择支持XFire的包创建创建 Web Serviceu创建Web Service Project后,web.xml配置如下 XFireServlet org.codehaus.xfire.transport.http.XFireConfigurableServlet 0 XFireServlet /services/* 创建创建 Web Serviceu创建模拟查询天气日报的服务方法public class Weather implements IWeather /根据城市获得天气日报public String getWeather(String cityName)if

9、(北京.equals(cityName)return 晴天;elsereturn 多云;获得天气日报实现类public interface IWeather /根据城市获得天气日报public String getWeather(String cityName);获得天气日报接口创建创建 Web Serviceu生成services.xml配置文件 创建web service选择XFire选择服务的接口和实现类myFirstWebServicecom.hr.g3.IWeathercom.hr.g3.Weatherwrappedliteralapplicationservices.xml配置文件

10、2.2 SOAP uSOAPn是一种通信协议n用于应用程序之间的通信n是一种用于发送消息的格式n被设计用来通过因特网进行通信n独立于平台n独立于语言n基于 XMLn简单并可扩展n允许绕过防火墙n被作为 W3C 标准来发展SOAPuSOAP请求和响应的消息结构SOAP请求消息SOAP响应消息一个SOAP请求或响应包括HTTP标头和一个标准的XML文档两部分 元素内是SOAP消息的详细信息 小结小结uWeb服务方法必须满足哪两个条件?uSOAP消息与HTTP和XML是什么关系?3. 发布发布 Web Service 3.1 WSDLWSDL是一种描述Web服务或网络端点的基于XML的语言 WSDL

11、文档元素:utypes:用来定义数据类型的嵌入的XML Schemaumessage:提供消息和消息传输的详细信息uportType:提供了具体协议与地址解析之间的桥梁ubinding:为元素或者操作提供协议信息uservice:为服务提供URI地址信息 WSDLuWSDL文档包含6个部分:n定义部分:元素的WSDL的根元素n类型部分:是一个嵌入的XML Schema,Web服务方法及参数都在这里定义n消息部分:元素包含了Web服务方法及参数n端口类型部分:部分是操作的集合,此元素在元素中被引用n绑定部分:绑定到具体的SOAP服务名,连接到portType部分n服务部分:service部分包含

12、端口或者端点的集合。端口提供了地址信息或者URI小结小结uWSDL文档由哪几部分组成?u部署Web Service在IIS中,关键步骤是哪几步?4. 调用调用 Web Service 4.1 Web Service的发现机制 Web服务发现机制是定位并查询Web服务的过程。通过这一机制,Web服务的客户就会知道一个Web服务的存在、它的功能以及如何正确地与它进行交互Web Service的发现机制的发现机制uUDDI统一描述、发现和集成,提供了一种独立于平台的数据库,其中包含Web服务的分类目录。允许用户更加方便地找到和消费Web ServiceUDDI请求中心和注册中心同步镜像 4.2 调用

13、调用 Web Serviceu调用上述创建的模拟查询天气的Web服务n创建J2EE工程,为工程添加xfire支持,再编写调用Web服务的方法,调用模拟天气日报的方法如下public void getWeather(String cityName) throws Exception URL url = new URL(http:/localhost:8989/webServiceL_TP_01/services/myFirstWebService?WSDL); Client client = new Client(url); Object ob = client.invoke(getWeathe

14、r, new ObjectcityName); System.out.println(天气:+ob0);n当城市名称(cityName)为“北京”时,查询结果如下天气:晴天n当城市名称(cityName)为其他城市时,查询结果如下天气:多云调用公共调用公共webServiceu网络上有很多日常所需的开放的公共服务,有的免费,有的收费,在这里了解所需服务;http:/ url=new URL(http:/ c=new Client(url);Object o=c.invoke(qqCheckOnline, new Object80959472);System.out.println(o0.toS

15、tring().equals(N)?不在线:在线);这样几句代码就可以让你的隐身朋友现形调用调用 Web Serviceu调用Internet上的Web服务 n查询国内手机号码归属地的Web服务,服务地址http:/ 获取国内手机号码归属地数据库信息方法 获取国内手机号码归属地省份、地区和手机卡类型信息方法SOAP协议响应协议响应getDatabaseInfo方法的返回调用调用 Web Serviceu调用getDatabaseInfo服务方法客户端代码如下 public void queryMobile() throws ExceptionURL url = new URL(http:/ c

16、lient = new Client(url);Object ob = client.invoke(getDatabaseInfo, new Object);Document doc = (Document)ob0;NodeList nl = doc.getElementsByTagName(string);StringBuffer sb = new StringBuffer();for (int count = 0; count nl.getLength(); count+) Node n = nl.item(count);if (n.getFirstChild().getNodeValue

17、().equals(查询结果为空!) sb = new StringBuffer(;);break;sb.append(n.getFirstChild().getNodeValue() + ; );if(count%5=0)sb.append(n);System.out.println(查询所有手机归属地:+sb.toString(); 获取国内手机号码归属地数据库信息服务方法查询所有手机归属地:全部 数据 181824; 安徽 安庆 382; 安徽 蚌埠 257; 安徽 亳州 114; 安徽 巢湖 251; 安徽 池州 155; 安徽 滁州 306; 安徽 阜阳 603; 安徽 合肥 704

18、; 安徽 淮北 183; 安徽 淮南 229; 安徽 黄山 150; 安徽 六安 356; 安徽 马鞍山 197; 安徽 宿州 342; 安徽 铜陵 128; 安徽 芜湖 296; 安徽 宣城 239; 北京 北京 6287; 福建 福州 1248; 福建 龙岩 369; 福建 南平 339; 福建 宁德 400; 福建 莆田 393; 福建 泉州 1334; 福建 三明 321; 查询结果 调用调用 Web Serviceu调用getMobileCodeInfo服务方法客户端代码如下 public void queryMobileByParas(String phone) throws ExceptionURL url = new URL(http:/ client = new Client(url);Object objectArray

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论