WebService与CXF简介
一.WebService
- WebService是一种跨编程语言和跨操作系统平台的远程调用技术。
- 跨编程语言和跨操作平台 : 就是说服务端程序采用java编写,客户端程序则可以采用其他编程语言编写,反之亦然!跨操作系统平台则是指服务端程序和客户端程序可以在不同的操作系统上运行。
- 远程调用 : 就是一台计算机a上的一个程序可以调用到另外一台计算机b上的一个对象的方法,譬如,银联提供给商场的pos刷卡系统,商场的POS机转账调用的转账方法的代码其实是跑在银行服务器上。再比如,amazon,天气预报系统,淘宝网,校内网,百度等把自己的系统服务以WebService服务的形式暴露出来,让第三方网站和程序可以调用这些服务功能,这样扩展了自己系统的市场占有率。
- 服务端:把公司内部系统的业务方法发布成WebService服务,供远程他人调用
客户端:调用别人发布的WebService服务 - .常见的远程调动技术:
1) Socket 套接字 TCP/IP UDP
2) WebService
3) http 调用
4) RMI( 远程方法调用 ) Hessian 框架(二进制RPC协议传输数据) - WebService 的特点:
1) 跨平台,跨语言
2) W3C(万维网联盟)制定的标准
3) 可以穿透防火墙(因为 soap 协议是基于 HTTP 协议) - SOAP 协议(简单对象访问协议Simple Object Access Protocol):
WebService通过HTTP协议发送请求和接收结果时,发送的请求内容和结果内容都采用XML格式封装,并增加了一些特定的HTTP消息头,以说明HTTP消息的内容格式,这些特定的HTTP消息头和XML内容格式就是SOAP协议。
SOAP协议 = HTTP协议 + XML数据格式 - WSDL
(Web Services Description Language)就是基于XML的语言,用于描述Web Service及其函数、参数和返回值。它是WebService客户端和服务器端都能理解的标准格式。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。
一些最新的开发工具既能根据你的Web service生成WSDL文档,又能导入WSDL文档,生成调用相应WebService的代理类代码。
二.CXF
- CXF,apache 下的 WebService 的开源框架。
- Apache CXF = Celtix + Xfire,开始叫 Apache CeltiXfire,后来更名为 Apache CXF了,以下简称为 CXF。Apache CXF 是一个开源的 web Services 框架,CXF 帮助您构建和开发 web Services ,它支持多种协议,比如:SOAP1.1,1,2、XML/HTTP、REST HTTP 或者 CORBA。
- 灵活的部署:可以运行有 Tomcat,Jboss,weblogic,Jetty(内置)上面。
CXF入门Demo
一.需求分析
- 我们这里是实现一个简单的天气预报的案例。注意,我们不是做真正的天气预报,而是一个假的信息。传递城市名称,如果是北京返回雾霾,否则返回晴。
- 我们开发需要开发服务端和客户端。