• 1. Webservice技术实战业务保障部 2010
  • 2. 目录目的 概述 演示 SOAPUI介绍 动手练习 SOAP传输附件和多参数传递 总结
  • 3. 培训目的 掌握Webservice学习中重点及难点 掌握Webservice程序开发步骤 提升分布式程序认识 掌握WSDL文件编写
  • 4. 目录目的 概述 演示 SOAPUI介绍 动手练习 SOAP传输附件和多参数传递 总结
  • 5. Webserive概念它是一种构建应用程序的普遍模型,可以在任何支持网络通信的操作系统中实施运行;它是一种新的web应用程序分支,是自包含、自描述、模块化的应用,可以发布、定位、通过web调用。Web Service是一个应用组件,它逻辑性的为其他应用程序提供数据与服务.各应用程序通过网络协议和规定的一些标准数据格式(Http,XML,Soap)来访问Web Service,通过Web Service内部执行得到所需结果.Web Service可以执行从简单的请求到复杂商务处理的任何功能。一旦部署以后,其他Web Service应用程序可以发现并调用它部署的服务。跨平台的,与语言无关 关键的技术和规则   在构建和使用Web Service时,主要用到以下几个关键的技术和规则:   1.XML:描述数据的标准方法.   2.SOAP:表示信息交换的协议.   3.WSDL:Web服务描述语言.   4.UDDI(Universal Description, Discovery and Integration):通用描述、发现与集成,它是一种独立于平台的,基于XML语言的用于在互联网上描述商务的协议。
  • 6. 常用拷贝+修改方式 编写WSDL文件 使用工具编译WSDL文件 生成客户端及客户端代码 第1步: 编写WSDL第2步: 编译WSDL通过实现编译生成的接口 类开发服务器端程序, 通过调用编译生成的客户 端类方法开发客户端程序 第3步: 实现程序SOAP程序开发步骤第4步: 发布测试生成WSDD文件、 部署应用
  • 7. WSDL结构WSDL——Web 服务描述语言。   Web 服务描述言语(WSDL)是一种 XML 语法,为服务提供者提供了描述构建在不同协议或编码方式之上的 Web Service 请求基本格式的方法。WSDL 用来描述一个 Web Services 能做什么,它的位置在哪里,如何调用它等。   一个 WSDL 文档在定义网络服务的时候使用如下的元素:   类型——使用某种的类型系统(如 XSD)定义数据类型的容器;   消息——通讯数据抽象的有类型的定义;   操作——服务支持动作的抽象描述;   端口类型——一个操作的抽象集合,该操作由一个或多个端点支持;   绑定——针对一个特定端口类型的具体协议规范和数据格式规范;   端口——一个单一的端点,定义成一个绑定和一个网络地址的链接;   服务——相关端点的集合。
  • 8. 实例WSDL文件解析此WSDL文件将解决工作中大多数参数传递会遇到的情况 对象属性的常用数据类型 参数类型为单对象 参数类型为对象数组 对象中包括字段为数组和非数组字段情况 WSDL文件的官方描述 此WSDL实例将是你编写 自己的WSDL的得力助手http://www.w3.org/TR/wsdl
  • 9. SOAPSOAP Simple Object Access Protocol): 简单对象访问协议  简单对象访问协议(SOAP)是一种轻量的、简单的、基于 XML 的协议,它被设计成在 WEB 上交换结构化的和固化的信息。 SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议( HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。   SOAP 包括三个部分:   SOAP 封装:它定义了一个框架 , 该框架描述了消息中的内容是什么,谁应当处理它以及它是可选的还是必须的。   SOAP 编码规则:它定义了一种序列化的机制,用于交换应用程序所定义的数据类型的实例。   SOAP RPC 表示:它定义了用于表示远程过程调用和应答的协定。
  • 10. AXISAxis 全称是Apache EXtensible Interaction System 阿帕奇可扩展交互系统  Axis的运行需要如下组件包    activation.jar log4j-1.2.8.jar    axis.jar mail.jar    axis-ant.jar saaj.jar    commons-discovery-0.2.jar wsdl4j-1.5.1.jar    commons-logging-1.0.4.jar    jaxrpc.jar
  • 11. Webservice、SOAP、AXIS、WSDL关系Webservice是一种理念,通过SOAP (Simple Object Access Protocol)协议支撑,AXIS是SOAP协议的一种实现框架,WSDL是SOAP协议中定义的一套用于描述服务的
  • 12. 搭建环境和编译命令说明下载AXIS JAR包,不用安装 J2SDK1.4 Tomcat5.0 和普通WEB应用程序搭建WEB应用一样 set Axis_Lib=D:\WebservicesStudy\axis-1_4\lib set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib% set Output_Path=E:\workspace\webservicesstudy\src %Java_Cmd% org.apache.axis.wsdl.WSDL2Java -s -S true -o%Output_Path% study_webservices_example.wsdl set Axis_Lib=D:\WebservicesStudy\axis-1_4\lib set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib% %Java_Cmd% org.apache.axis.client.AdminClient -lhttp://localhost:9090/webservicesstudy/services/AdminService deploy.wsdd设备环境WSDL2JAVA 环境编译时生成服务端程序, 默认情况下只生成客户端程序编译后程序存放位置使用axis工具AdminClient 生成server-config.wsdd
  • 13. 服务端程序部署目录
  • 14. 目录目的 概述 演示 SOAPUI 动手练习 SOAP传输附件和多参数传递 总结
  • 15. WSDL文件编译假定: 第一、study_webservices_example.wsdl文件存放在D:\WebservicesStudy 第二、编译后的程序存放在E:\workspace\webservicesstudy\src WSDL文件编译后目录结构: 编译后生成程序按照WSDL定义的包结构存放各JAVA文件
  • 16. 编译后的目录结构、添加JAR包此WSDL文件将解决工作中大多数参数传递会遇到的情况
  • 17. 修改web.xmlWebservice服务端程序与普通JAVA web应用相似: 相同点: 都需要WEB应用服务器 部署目录结构一致 不同点: Web.xml文件不同,参考通过axis实现的SOAP服务的Web.xml文件 在WEB-INF目录下存放着server-config.wsdd文件 开发你自己的Webservice时 请记得参考此Web.xml修改哟
  • 18. 服务端程序实现编译后会生成以Impl结尾的JAVA文件,程序部署后应用服务器在收到客户端请求时就调用这个类的响应方法 所以服务端业务逻辑写在这个类中
  • 19. 部署服务端程序此WSDL文件将解决工作中大多数参数传递会遇到的情况
  • 20. 生成server-config.wsdd文件第一:部署 第二:启动应用服务器 第三:通过浏览器可以看到如右图 第四执行命令如下图: 成功后会在部署应用的 WEB-INF目录下生成、 server-config.wsdd 执行失败将看不到
  • 21. 测试应用发布成功第一:重启应用服务器 在浏览器中输入右图的地址 看到如右图所有表示发布成功 或者在浏览器输入 http://localhost:9090/webservicesstudy/services/IntServer?wsdl http://localhost:9090/webservicesstudy/services/IntServer客户端调用的URL
  • 22. 客户端程序开发编写客户端程序时只要像如下的方法调用即可 在WSDL文件中定义 message
  • 23. 目录目的 概述 演示 SOAPUI介绍 动手练习 SOAP传输附件和多参数传递 总结
  • 24. SOAPUP使用介绍一 SOAPUP启动后如下图: 第一步:创建工程、在FILE菜单项中单击“New soapUI Project”
  • 25. SOAPUI使用介绍二在以下界面可以做如下三件事: 1、在地址栏配置服务端服务的URL 2、在右侧主区域填写方法调用参数 3、在左侧界面选择不同的方法
  • 26. 目录目的 概述 演示 SOAPUI 动手练习 SOAP传输附件和多参数传递 总结
  • 27. 练习题目业务需求: 服务端:接受客户端请求参数“姓名”,输出“了姓名:我收到你的请求”,并回复客户端请求“姓名:我收到你的请求了” 客服端:向服务端发起带参数“姓名”的请求,并输出“哇,服务端回复我了,回复内容:”
  • 28. 第2步: 编写WSDL第3步: 编译WSDL第4步: 实现程序动手练习步骤第5步: 发布测试第1步: 搭建环境
  • 29. 练习步骤说明搭建环境 1、主要检查AXIS JAR包是否下载,存放在D:\WebservicesStudy\axis-1_4\lib目录下 2、J2SDK、tomcat是否安装 编写WSDL文件 1、依据study_webservices_example.wsdl修改 2、存放在D:\WebservicesStudy目录下 编译 1、创建在eclipse工作空间下创建webservicesstudy WEB工程 2、使用cmd进入D:\WebservicesStudy执行如下命令 set Axis_Lib=D:\WebservicesStudy\axis-1_4\lib set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib% set Output_Path=E:\workspace\webservicesstudy\src %Java_Cmd% org.apache.axis.wsdl.WSDL2Java -s -S true -o%Output_Path% study_webservices_example.wsdl 3、在工程下修改web.xml 实现程序: 1、服务端实现以Impl结尾的JAVA文件方法 2、客户端采用String endpoint="http://localhost:9090/webservicesstudy/services/IntServer"; PublishServiceLocator service = new PublishServiceLocator(); IntServer port = service.getIntServer(new java.net.URL(endpoint)); port.putObject(in_object);代码调用服务端 修改为本机eclipse的 工作空间位置
  • 30. 练习步骤说明部署: 1、部署应用、启动应用服务器tomcat 2、使用cmd进入deploy.wsdd目录执行如下命令 set Axis_Lib=D:\WebservicesStudy\axis-1_4\lib set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib% %Java_Cmd% org.apache.axis.client.AdminClient -lhttp://localhost:9090/webservicesstudy/services/AdminService deploy.wsdd 测试: 1、停止应用服务器tomcat,再次启动服务 2、启动客户端程序查看结果
  • 31. 目录目的 概述 演示 SOAPUI 动手练习 SOAP传输附件和多参数传递 总结
  • 32. 多附件SOAP关键环节1、采用DataHandler来包装附件,多附件采用DataHandler数组 2、服务端和客户端间采用多参数传递、附件或者附件数组作为一个参数,其他参数对象分别传递 3、编写WSDL的区别 在属性中增加xmlns:apachesoap=http://xml.apache.org/xml-soap 在中增加 多参数传递时在定义,参数讲究顺序,中间用空格
  • 33. 多附件SOAP关键环节 4、在通过deploy.wsdd编译生成server-config.wsdd前需要在deploy.wsdd中用 替换自动生成的对元素的解析方式 5、客户端调用时区别 不能直接采用* Locator或者*stub的方式来调用。 需要Service service = new Service(); Call call = (Call) service.createCall();
  • 34. 多附件SOAP实例文件中包括WSDL、修改后deploy.wsdd、 server-config.wsdd.客户端怎么调用 请阅读Resource中的readme.txt
  • 35. 目录目的 概述 演示 SOAPUI 动手练习 SOAP传输附件和多参数传递 总结
  • 36. SOAP、CORBA、FTP、SNMP、JMSSOAP、CORBA、FTP、SNMP都是目前应用比较多的常见协议 SOAP、CORBA、JMS都是实时性比较高的协议、SOAP开发时需要定位WSDL、CORBA开发时需要定义IDL文件 FTP应用在实时性要求不高的情况,开发时需要定位交互文件格式 SNMP主要应用网络设备管理中、开发时需要定义MIB库
  • 37. 补充说明Web Service框架列表 Axis和Xfire并列的新一代Web Service框架,通过提供简单的API支持Web Service各项标准协议,帮助你方便快速地开发Web Service应用 Axis开发部署方法 第一种:通过WSDL生成代码部署 第二种:JWS方式 Webservices服务支撑 Tomcat、Weblogic等
  • 38. 接口程序故障快速定位技巧一分为二快速定位法: 接口程序故障解决方法通过抓包将问题快速判断为是对方程序问题还是自身程序问题。客户端程序服务端程序抓包工具