鲁春利的工作笔记好记性不如烂笔头



基本概念参阅:http://www.w3school.com.cn/ws.asp


wKioL1eMSvjwgTarAAF1HkUYhag995.jpg

通俗的讲“气象爱好者在网上随意发布个人预测的气象信息,可能会遭遇重金罚款。”


最精辟的句子:男人讨厌女人猜疑,往往是因为她们猜的太准了。


Web Service可以认为是一种标准,定义了操作的规范,任何语言都可以发布自己的服务或者实现自己的client来使用其他厂商提供的服务,数据交换的过程则是透明的(通过气象局的WebService服务获取气象数据)。

    Web Services 可以将应用程序转换为网络应用程序。

    Web Services 可以被其他应用程序利用(跨语言)。

    基本的 Web Services 平台是 XML+HTTP。


以各个网站显示天气预报功能为例:
    气象中心的管理系统将收集的天气信息并将数据暴露出来(通过WebService Server), 而各大站点的应用就去调用它们得到天气信息并以不同的样式去展示(WebService Client)。
    网站提供了天气预报的服务,但其实它们什么也没有做,只是简单了调用了一下气象中心服务器上的一段代码而已。

wKiom1eMbALCB8B8AADFxHifFTQ829.jpg


不同的平台,不同的语言大都提供Web Service的开发实现,在JAVA领域,Web Service的框架很多,例如:Axis1&2,Xfire,CXF,Java自带的JAX-WS。


1、JAX-WS

    JAX-WS(Java API For XML-WebService),JDK1.6 自带的版本为JAX-WS2.1,其底层支持为JAXB(Java Architecture for XML Binding)。

    JAX-WS(JSR 224)规范的API 位于javax.xml.ws.*包,其中大部分都是注解,提供API 操作Web 服务(通常在客户端使用的较多,由于客户端可以借助SDK 生成,因此这个包中的API 我们较少会直接使用)。

wKioL1Zv2G2hPQziAAOoPIuN1n4354.jpg

wKiom1Zv2RWwu4fdAAEiIhuvhKY500.jpg

wKioL1Zv2UKhpafMAAQ1jwFZy9w739.jpg

    WS-MetaData(JSR 181)是JAX-WS 的依赖规范,其API 位于javax.jws.*包,使用注解配置公开的Web 服务的相关信息和配置 SOAP 消息的相关信息。

wKiom1Zv2cOQVZdFAALq-2cLNSU538.jpg


2、Axis2
    (Apache eXtensibleInteraction System)是Apache下的一个重量级WebService框架,提供了多语言支持。

    下载地址:http://axis.apache.org/

wKioL1ZvzQ7hTmRKAAJaDkSuQH4553.jpg


3、XFire

    XFire在2007年后已停止更新,最后的一个版本是1.2.6,在2007年5月3日发布。正式更名为Apache CXF,亦可以说是XFire2.0。


4、Apache CXF

    下载地址:http://cxf.apache.org/

    Apache CXF是开源的,是Celtix和XFire合并发展而来,CXF的名字来源于"Celtix"和"XFire"的首字母。

    CXF不仅提供了对 JAX-WS 全面的支持,并且提供了多种 Binding 、DataBinding、Transport 以及各种 Format 的支持,以及可以根据实际项目的需要,采用代码优先(Code First)或者 WSDL 优先(WSDL First)来轻松地实现 Web Services 的发布和使用。

    另外,CXF可以天然的和Spring进行无缝集成。
wKiom1ZvzXGx4eFgAAMcymDM7Uc813.jpg