1.Web service 是什么?
基于Web 的服务:服务器端整出一些资源让客户端应用访问(获取数据)
一个跨语言、跨平台的规范(抽象)
多个跨平台、跨语言的应用间通信整合的方案(实际)
2. 为什么要用Web service?
web service 能解决:
跨平台调用
跨语言调用
远程调用
3. 什么时候使用web Service?
同一家公司的新旧应用之间
不同公司的应用之间分析业务需求:天猫网与中通物流系统如何交互?
一些提供数据的内容聚合应用:天气预报、股票行情
4. Web Service 中的几个重要术语
4.1. WSDL:web service definition language 直译 : WebService 定义语言
对应一种类型的文件.wsdl
定义了web service 的服务器端与客户端应用交互传递请求和响应数据的格式和方式
一个web service 对应一个唯一的wsdl 文档
4.2. SOAP:simple object access protocal 直译: 简单对象访问协议
是一种简单的、基于HTTP 和XML的协议, 用于在WEB 上交换结构化的数据
soap 消息:请求消息和响应消息
http+xml 片断
4.3. SEI:WebService EndPoint Interface 直译: web service 的终端接口,
就是WebService 服务器端用来处理请求的接口
在使用CXF调用客户端代码时出现如下异常,原因未知怀疑是导入的jar包有冲突,留待以后解决
4.4. CXF:Celtix + XFire
一个apache 的用于开发webservice 服务器端和客户端的框架
5. 开发webservice
5.1. 概述
• 开发手段:
– 使用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 文件的路径
– 借助生成的代码编写请求代码
5.3 使用CXF 开发web service
加入cxf 的jar 包即可,其它不需要改动
-生成客户端代码时用wsdl2java 而不用wsimport
在调用地址为http://www.webxml.com.cn/WebServices/WeatherWebService.asmx 的天气服务时出现如下异常,未解决怀疑是导入的包有冲突导致
警告: Interceptor for {http://WebXml.com.cn/}WeatherWebService#{http://WebXml.com.cn/}getWeatherbyCityName has thrown exception, unwinding now
org.apache.cxf.binding.soap.SoapFault: No namespace on "html" element. You must send a SOAP message.