Web service是什么?
- 基于Web的服务:服务器端整出一些资源让客户端应用访问(获取数据)
- 一个跨语言、跨平台的规范(抽象)
- 多个跨平台、跨语言的应用间通信整合的方案(实际)
以各个网站显示天气预报功能为例:
气象中心的管理系统将收集的天气信息并将数据暴露出来(通过WebService Server), 而各大站点的应用就去调用它们得到天气信息并以不同的样式去展示(WebService Client).
网站提供了天气预报的服务,但其实它们什么也没有做,只是简单了调用了一下气象中心服务器上的一段代码而已。
3.2. 为什么要用Web service?
WSDL:web service definition language
web service能解决:
跨平台调用
跨语言调用
远程调用
什么时候使用web Service?
同一家公司的新旧应用之间
2. 不同公司的应用之间
分析业务需求:天猫网与中通物流系统如何交互?
3. 一些提供数据的内容聚合应用:天气预报、股票行情
直译 : WebService定义语言
1. 对应一种类型的文件.wsdl
2. 定义了web service的服务器端与客户端应用交互传递请求和响应数据的格式和方式
3. 一个web service对应一个唯一的wsdl文档
4.2. SOAP:simple object access protocal
直译: 简单对象访问协议
1. 是一种简单的、基于HTTP和XML的协议, 用于在WEB上交换结构化的数据
2. soap消息:请求消息和响应消息
3. http+xml片断
4.3. SEI:WebService EndPoint Interface(终端)
直译: web service的终端接口,
- 就是WebService服务器端用来处理请求的接口
@Webservice
@WebMethod
4.4. CXF:Celtix + XFire
一个apache的用于开发webservice服务器端和客户端的框架
5. 开发webservice
• 开发手段:
– 使用JDK开发(1.6及以上版本)
– 使用CXF框架开发(工作中)
• 组成:
– 服务器端
– 客户端
5.2. 使用JDK开发WebService
开发服务器端
• Web Service编码:
– @WebService( SEI和SEI的实现类)
– @WebMethod(SEI中的所有方法)
• 发布Web Service:
– Endpoint(终端, 发布webservice)
开发客户端
• 使用eclipse提供的web service浏览器访问
– 查看对应的wsdl文档:…..?wsdl (一般浏览器)
– 请求webService并查看请求和响应消息(webservice浏览器)
• 创建客户端应用编码方式访问
– 借助jdk的wsimort.exe工具生成客户端代码:
wsimport -keep url //url为wsdl文件的路径
– 借助生成的代码编写请求代码