虽然这四个部分都作为SOAP的一部分,作为一个整体定义的,但他们在功能上是相交的、彼此独立的 。特别的,信封和编码规则是被定义在不同的XML命名空间(namespace)中,这样使得定义更加简单 。
什么是CXF?
Apache CXF = Celtix + XFire,Apache CXF 的前身叫 Apache CeltiXfire,现在已经正式更名为 Apache CXF 了,以下简称为 CXF 。CXF 继承了 Celtix 和 XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且提供了多种 Binding 、DataBinding、Transport 以及各种 Format 的支持 , 并且可以根据实际项目的需要,采用代码优先(Code First)或者 WSDL 优先(WSDL First)来轻松地实现 Web Services 的发布和使用 。目前它仍只是 Apache 的一个孵化项目 。
Apache CXF 是一个开源的 Services 框架,CXF 帮助您利用 Frontend 编程 API 来构建和开发 Services,像 JAX-WS。这些 Services 可以支持多种协议,比如:SOAP、XML/HTTP、RESTful HTTP 或者 CORBA,并且可以在多种传输协议上运行,比如:HTTP、JMS 或者 JBI , CXF 大大简化了 Services 的创建,同时它继承了 XFire 传统,一样可以天然地和 Spring 进行无缝集成 。
CXF 包含了大量的功能特性,但是主要集中在以下几个方面:
支持 Web Services 标准:CXF 支持多种 Web Services 标准,包含 SOAP、Basic Profile、WS-Addressing、WS-Policy、WS-ReliableMessaging 和 WS-Security 。
Frontends:CXF 支持多种“Frontend”编程模型,CXF 实现了 JAX-WS API (遵循 JAX-WS 2.0 TCK 版本),它也包含一个“simple frontend”允许客户端和 EndPoint 的创建,而不需要 Annotation 注解 。CXF 既支持 WSDL 优先开发,也支持从 Java 的代码优先开发模式 。
容易 使用: CXF 设计得更加直观与容易使用 。有大量简单的 API 用来快速地构建代码优先的 Services,各种 Maven 的插件也使集成更加容易 , 支持 JAX-WS API ,支持 Spring 2.0 更加简化的 XML 配置方式 , 等等 。
支持二进制和遗留协议:CXF 的设计是一种可插拨的架构 , 既可以支持 XML,也可以支持非 XML 的类型绑定,比如:JSON 和 CORBA 。
我们来利用cxf创建一个简单的webservice吧 。
首先cxf 所需要的包:更具网站说明以下的包都是必须的,但是在我的实际项目中红色部分的包并没有用到 。
大家可更具自己需求来添加适应的包 。
cxf.jar
commons-logging.jar
geronimo-activation.jar (Or the Sun equivalent)//
geronimo-annotation.jar (Or the Sun equivalent)//
geronimo-javamail.jar (Or the Sun equivalent)//
neethi.jar
jaxb-api.jar
jaxb-impl.jar
stax-api.jar//
XmlSchema.jar
wstx-asl.jar
xml-resolver.jar
分布式应用程序和浏览器
研究一下当前的应用程序开发,你会发现一个绝对的倾向:人们开始偏爱基于浏览器的瘦客户应用程序 。这当然不是因为瘦客户能够提供更好的用户界面,而是因为 它能够避免花在桌面应用程序发布上的高成本 。发布桌面应用程序成本很高,一半是因为应用程序安装和配置的问题 , 另一半是因为客户和服务器之间通信的问题 。
传统的Windows富客户应用程序使用DCOM来与服务器进行通信和调用远程对象 。配置好DCOM使其在一个大型的网络中正常工作将是一个极富挑战性的 工作 , 同时也是许多IT工程师的噩梦 。事实上,许多IT工程师宁愿忍受浏览器所带来的功能限制,也不愿在局域网上去运行一个DCOM 。在我看来 , 结果就是 一个发布容易,但开发难度大而且用户界面极其受限的应用程序 。极端的说,就是你花了更多的资金和时间,却开发出从用户看来功能更弱的应用程序 。不信?问问 你的会计师对新的基于浏览器的会计软件有什么想法:绝大多数商用程序用户希望使用更加友好的Windows用户界面 。
推荐阅读
- 体育竞技游戏简介范文图片,体育竞技游戏简介范文图片
- 直播的是什么东西啊,直播是啥玩意
- 关于棋牌游戏怎么改变开发商的信息
- 有什么竞速真实赛车的游戏,真实赛车类的手游
- go语言下载闭包 go语言闭包用在什么地方
- 安卓怎么备份迅雷视频下载,怎么把安卓手机迅雷视频导出来
- 宏碁电脑4710什么配置,宏碁电脑4710什么配置好
- 田园经营游戏古风,田园类经营单机游戏
- 上传视频的java代码 上传视频的java代码是什么