Java网络编程精解讲义17.ppt

上传人:qwe****56 文档编号:70019312 上传时间:2023-01-14 格式:PPT 页数:32 大小:802.50KB
返回 下载 相关 举报
Java网络编程精解讲义17.ppt_第1页
第1页 / 共32页
Java网络编程精解讲义17.ppt_第2页
第2页 / 共32页
点击查看更多>>
资源描述

《Java网络编程精解讲义17.ppt》由会员分享,可在线阅读,更多相关《Java网络编程精解讲义17.ppt(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Java网络编程精解作者:孙卫琴作者:孙卫琴作者:孙卫琴作者:孙卫琴参考书籍:参考书籍:参考书籍:参考书籍:技术支持网址:技术支持网址:技术支持网址:技术支持网址:www.javathinker.orgwww.javathinker.org第17章 Web服务简介参考Java网络编程精解的第17章n17.1 SOAP 简介n17.2 建立Apache AXIS环境n17.3 在Tomcat上发布Apache-AXIS Web应用n17.4 创建SOAP服务n17.5 管理SOAP服务n17.6 创建和运行SOAP客户程序n17.7 发布JWS服务 第17章 Web服务简介nWeb服务确立了一种

2、基于Internet网的分布式软件体系结构。n一个系统向另一个系统公开的服务被统称为Web服务。nWeb服务主要涉及以下两个要素:nSOAP(Simple Object Access Protocol)协议:基于XML 语言的数据交换协议。nWSDL(Web Service Description Language)语言:基于XML语言的Web服务描述语言,与CORBA的IDL语言的作用类似。n本课把Web服务也称为SOAP服务。本课首先介绍了SOAP的基本概念,接着介绍了一个实现了SOAP的Web服务框架:Apache AXIS。17.1 SOAP简介nSOAP(Simple Object

3、Access Protocol),即简单对象访问协议,是在分布式的环境中交换数据的简单协议,它以XML作为数据传送语言。nSOAP采用的通信协议可以是HTTP/HTTPS(现在用得最广泛)协议,也可以是SMTP/POP3协议。17.1 SOAP简介17.1 SOAP简介nSOAP系统有两种工作模式,一种称为RPC(Remote Procedure Call),另一种叫法不统一,在Microsoft的文档中称做Document-Oriented,而在Apache的文档中,称为Message-Oriented。下文将集中讨论RPC。n可以把SOAP RPC简单的理解为这样一个开放协议:SOAP=R

4、PC+HTTP+XML。它有以下特征:n采用HTTP作为通信协议,采用客户/服务模式。nRPC作为统一的远程方法调用途径。n传送的数据使用XML语言,允许服务提供者和客户经过防火墙在Internet上进行通信。17.1 SOAP简介17.1 SOAP简介nSOAP客户和SOAP服务器之间采用符合SOAP规范的XML数据进行通信。例如以下是一个SOAP服务器向SOAP客户发回的响应数据:Hello:weiqin 17.2 建立Apache AXIS环境 n建立Apache AXIS环境需要的文件的清单和下载地址参见表17-1。17.2 建立Apache AXIS环境n把axis-1_1.zip解

5、压到本地硬盘,假定它的根目录为。n在/webapps子目录下有一个axis子目录,它是一个用于发布SOAP服务的Web应用,下文称其为Apache-AXIS Web应用。17.3 在Tomcat上发布Apache-AXIS Web应用n用Tomcat服务器来发布Apache-AXIS Web应用的步骤如下。n(1)把activation.jar,mail.jar和xerces.jar拷贝到/lib目录下。n(2)把/webapps目录下的整个axis子目录拷贝到/webapps目录下。17.3 在Tomcat上发布Apache-AXIS Web应用n启动Tomcat服务器,再通过浏览器访问 h

6、ttp:/localhost:8080/axis,将会看到如图17-3所示的axis的主页。17.4 创建SOAP服务nTomcat充当Apache-AXIS Web应用的容器。nApache-AXIS Web应用又充当SOAP服务的容器。nSOAP客户程序可以通过Apache AXIS API来发出RPC请求,访问SOAP服务。17.4 创建SOAP服务 17.4 创建SOAP服务创建基于RPC的SOAP服务包括两个步骤:n(1)创建提供SOAP服务的Java类。n(2)创建SOAP服务的发布描述符文件。17.4.1 创建提供SOAP服务的Java类n以下是一个简单的SOAP服务类,它包含了

7、一个方法sayHello():package mypack;public class HelloService public String sayHello(String username)return Hello:+username;n编译这个Java类不需要在classpath中引入任何与AXIS相关的JAR文件。编译完毕,应该把HelloService.class文件拷贝到以下目录:/webapps/axis/WEB-INF/classes/mypack17.4.2 创建SOAP服务的发布描述符文件nApache AXIS使用Web服务发布描述符文件WSDD(Web Service De

8、ployment Descriptor)来发布SOAP服务。n以下是HelloService的发布描述文件,名为deploy.wsdd:17.5 管理SOAP服务nApache AXIS工程提供了两种管理SOAP服务的工具,一种是基于Web的,还有一种是基于命令行的。n这两种工具都能提供发布和删除SOAP服务的功能。17.5.1 发布SOAP服务n发布SOAP服务时,只要指定wsdd文件即可,使用方法如下:java org.apache.axis.client.AdminClient deploy.wsddn以上命令将把deploy.wsdd文件中声明的SOAP服务发布到SOAP服务器中。17

9、.5.1 发布SOAP服务17.5.2 删除SOAP服务n删除SOAP服务时,只要指定包含元素的wsdd文件即可,使用方法如下:java org.apache.axis.client.AdminClient undeploy.wsddn运行以上命令,将删除helloservice服务。17.6 创建和运行SOAP客户程序nSOAP RPC客户程序可以通过Apache AXIS API发出RPC请求,调用SOAP服务的方法,例程17-1(HelloClient.java)是访问helloservice服务的sayHello方法的客户程序。例程17-1 HelloClient.javapublic

10、 class HelloClient public static void main(String args)try String username=Guest;if(args.length!=0)username=args0;String endpoint=http:/localhost:8080/axis/services/helloservice;Service service=new Service();Call call =(Call)service.createCall();call.setTargetEndpointAddress(new .URL(endpoint);call.

11、setOperationName(new QName(urn:helloservice,sayHello);String ret=(String)call.invoke(new Object username );System.out.println(ret);catch(Exception e)e.printStackTrace();17.6 创建和运行SOAP客户程序n图17-9 客户程序访问名为helloservice的Web服务的时序图17.7 发布JWS服务n所谓JWS(Java Web Service)服务,就是Java Web服务。nAXIS允许把Java源文件的扩展名改为jws

12、,然后把它拷贝到/webapps/axis目录下,这样AXIS会自动编译JWS文件,并把它加入到JWS服务中。17.7 发布JWS服务n如果要把HelloService作为JWS服务来发布,只要将HelloService.java改名为HelloService.jws,再把HelloService.jws拷贝到以下位置:/webapps/axis/HelloService.jwsn然后访问以下URL:http:/localhost:8080/axis/HelloService.jws?method=sayHello¶meter=weiqin17.7 发布JWS服务练习题1n问题:关于问

13、题:关于SOAP,以下哪些说法正确?以下哪些说法正确?n选项选项:na)SOAP是基于是基于XML语言的数据交换协议。语言的数据交换协议。nb)SOAP可以建立在可以建立在HTTP协议基础之上。协议基础之上。nc)SOAP要求服务器端与客户端都是要求服务器端与客户端都是Java程序。程序。nd)SOAP属于应用层的协议。属于应用层的协议。n答案答案:a,b,d练习题2n问题:关于问题:关于WSDL,以下哪些说法正确?以下哪些说法正确?n选项选项:na)WSDL的全称为:的全称为:Web Service Description Languagenb)WSDL是是Web服务的描述语言。服务的描述语

14、言。nc)WSDL的作用与的作用与CORBA中的中的IDL相似。相似。nd)WSDL是基于是基于HTML的语言。的语言。n答案答案:a,b,c练习题3n问题:用问题:用Tomcat服务器来发布服务器来发布Apache-AXIS Web应应用时,用时,Tomcat有什么作用?有什么作用?n选项选项:na)接收接收HTTP请求请求nb)解析解析HTTP请求请求nc)充当充当Apache-AXIS Web应用的容器应用的容器nd)把把RPC响应包装为响应包装为HTTP响应,并发送响应,并发送HTTP响应。响应。ne)解析解析RPC请求,对其中的参数进行反序列化。请求,对其中的参数进行反序列化。nf)

15、把把RPC响应包装为响应包装为HTTP响应,并发送响应,并发送HTTP响应。响应。n答案答案:a,b,c,d练习题4n问题:问题:Apache-AXIS Web应用有什么作用?应用有什么作用?n选项选项:na)接收接收HTTP请求请求nb)解析解析HTTP请求请求nc)解析解析RPC请求,对其中的参数进行反序列化。请求,对其中的参数进行反序列化。nd)调用相应的调用相应的SOAP服务服务ne)把把SOAP服务的返回结果包装为服务的返回结果包装为RPC响应。响应。n答案答案:c,d,e练习题5n问题:对于建立在问题:对于建立在HTTP协议上的协议上的SOAP,RPC请求与请求与HTTP请求之间是

16、什么关系?请求之间是什么关系?n选项选项:na)RPC请求是请求是HTTP请求的正文部分。请求的正文部分。nb)HTTP请求是请求是RPC请求的正文部分。请求的正文部分。nc)RPC请求是请求是HTTP请求的头部分。请求的头部分。nd)两者没有关系。两者没有关系。n答案答案:a练习题6n问题:对于本课介绍的例子,哪些组件必须直接利用问题:对于本课介绍的例子,哪些组件必须直接利用Socket来接收和发送数据?来接收和发送数据?n选项选项:na)服务器端的服务器端的HelloService类类nb)Tomcat服务器服务器nc)Apache-AXIS Web应用应用nd)客户端的客户端的Apache-AXIS APIne)客户端的客户端的HelloClient类类n答案答案:b,d

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁