简单了解Apache CXF

关于 Apache 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 包含了大量的功能特性,但是主要集中在以下几个方面:

  1. 支持 Web Services 标准:CXF 支持多种 Web Services 标准,包含 SOAP、Basic Profile、WS-Addressing、WS-Policy、WS-ReliableMessaging 和 WS-Security。
  2. Frontends:CXF 支持多种“Frontend”编程模型,CXF 实现了 JAX-WS API (遵循 JAX-WS 2.0 TCK 版本),它也包含一个“simple frontend”允许客户端和 EndPoint 的创建,而不需要 Annotation 注解。CXF 既支持 WSDL 优先开发,也支持从 Java 的代码优先开发模式。
  3. 容易使用: CXF 设计得更加直观与容易使用。有大量简单的 API 用来快速地构建代码优先的 Services,各种 Maven 的插件也使集成更加容易,支持 JAX-WS API ,支持 Spring 2.0 更加简化的 XML 配置方式,等等。
  4. 支持二进制和遗留协议:CXF 的设计是一种可插拨的架构,既可以支持 XML ,也可以支持非 XML 的类型绑定,比如:JSON 和 CORBA。
支持多种标准
  • 支持 JAX-WS、 JAX-WSA、JSR-181 和 SAAJ;
  • 支持 SOAP 1.1、1.2、WS-I BasicProfile、WS-Security、WS-Addressing、WS-RM 和 WS-Policy;
  • 支持 WSDL 1.1 、2.0;
  • 支持 MTOM;
多种传输方式、Bindings、Data Bindings 和 Format
  • Bindings:SOAP、REST/HTTP;
  • Data Bndings:目前支持 JAXB 2.0、Aegis 两种,默认是 JAXB 2.0。XMLBeans、Castor 和 JiBX 数据绑定方式将在 CXF 2.1 版本中得到支持;
  • 格式(Format):XML、JSON;
  • 传输方式:HTTP、Servlet、JMS 和 Jabber;
  • 可扩展的 API 允许为 CXF 增加其它的 Bindings,以能够支持其它的消息格式,比如:CSV 和固定记录长度。
灵活部署
  • 轻量级容器:可在 Tomcat 或基于 Spring 的容器中部署 Services;
  • 集成 JBI:可以在如 ServiceMix, OpenESB or Petals 等等的 JBI 容器中将它部署为一个服务引擎;
  • 集成 SCA:可以部署在如 Tuscany 之类的 SCA 容器中;
  • 集成 J2EE:可以在 J2EE 应用服务器中部署 Services,比如:Geronimo、JOnAS、JBoss、WebSphere Application Server 和 WebLogic Application Server,以及 Jetty 和 Tomcat;
  • 独立的 Java 客户端/服务器。
支持多种编程语言
  • 全面支持 JAX-WS 2.0 客户端/服务器编程模型;
  • 支持 JAX-WS 2.0 synchronous、asynchronous 和 one-way API's;
  • 支持 JAX-WS 2.0 Dynamic Invocation Interface (DII) API;
  • 支持 wrapped and non-wrapped 风格;
  • 支持 XML messaging API;
  • 支持 JavaScript 和 ECMAScript 4 XML (E4X) ,客户端与服务端均支持;
  • 通过 Yoko 支持 CORBA;
  • 通过 Tuscany 支持 SCA;
  • 通过 ServiceMix 支持 JBI ;

文件目录结构及相关文件的详细说明:

  • bin(目录)

    bin 目录中是 CXF 框架中所提供的代码生成、校验、管理控制台工具:

    • Java to WSDL : java2wsdl
    • CXF Management Console Tool : mc
    • WSDL to Java : wsdl2java
    • WSDL to Service : wsdl2service
    • WSDL to SOAP : wsdl2soap
    • WSDL to XML : wsdl2xml
    • WSDL Validation : wsdlvalidator
    • XSD to WSDL : xsd2wsdl
  • docs(目录)

    CXF 所有类(class)对应的 API 文档,为开发者使用 CXF 完成应用开发提供应有的帮助。

  • etc(目录)

    包含一个基本的 Service 暴露所需要的 web.xml 文件,及其它的配置文件。

  • lib(目录)

    lib 目录中包含 CXF 及其运行时所需要的和可选的第三方支持类包(.jar 文件),可以根据不同项目所需的 CXF 特性选择所需要的支持类包。如果不想一一去区分的话,可以直接在 Web 项目中包含所有的 CXF 及其运行时所需要的第三方支持类包(.jar 文件)即可。

    其中 cxf-2.0.2-incubator.jar 是 CXF 框架的二进制包文件,包含了全部的模块(modules),cxf-manifest-incubator.jar 是列表清单文件 manifest jar 。

    以下的 jar 包是所有 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

    对于 Java2WSDL 和 WSDL2Java,除了必需的之外,还需要再增加如下 jar 包:

    • jaxb-xjc.jar
    • veliocity.jar
    • velocity-dep.jar

    为了支持 JAX-WS ,除了必需的之外,还需要再增加如下 jar 包:

    • jaxws-api.jar
    • saaj-api.jar
    • saaj-impl.jar
    • asm.jar (可选的,但是可以提升包装类型的性能)

    为了支持 XML 配置,除了必需的之外,还需要再增加如下 jar 包:

    • aopalliance.jar
    • spring-beans.jar
    • spring-context.jar
    • spring-core.jar
    • spring.web.jar

    为了独立的 HTTP 服务支持,除了必需的之外,还需要再增加如下 jar 包:

    • geronimo-servlet.jar
    • jetty.jar
    • jetty-sslengine.jar
    • jetty-util.jar
    • sl4j.jar & sl4j-jdk14.jar (可选的,但是可以提升日志 logging)

    为了支持 Aegis ,除了必需的之外,还需要再增加如下 jar 包:

    • jaxen.jar
    • jdom.jar
    • stax-utils.jar

    为了支持 WS-Security ,除了必需的之外,还需要再增加如下 jar 包:

    • bcprov-jdk14.jar
    • wss4j.jar
    • xalan.jar
    • xmlsec.jar

    为了支持 HTTP Binding ,除了必需的之外,还需要再增加如下 jar 包:

    • jra.jar
    • jettison.jar (仅为 JSON 服务所需的)
  • licenses(目录)

    列表了引用第三方 jar 包的相关许可协议。

  • modules(目录)

    modules 目录中包含了 CXF 框架根据不同特性分开进行编译的二进制包文件。发布基于 CXF 框架的 Web 项目时,可以选择使用该目录下的所有 .jar 文件,也可以选择 lib 目录中的 cxf-2.0.2-incubator.jar 文件。

  • samples(目录)

    samples 目录中包含了所有随 CXF 二进制包发布的示例,包含这些示例的源代码和相关 Web 应用配置文件,可以方便地用 Ant 来编译运行测试这些示例,来了解 CXF 的开发和使用的方法。可以通过 samples 目录和它各个子目录下的 README.txt 的文件来详细了解示例的编译与运行的步骤。

  • DISCLAIMER 由于仍是处于 Apache 孵化状态的项目,这里描述了一些说明。
  • LICENSE 文件中包含了 CXF 框架的授权协议 Apache License Version 2.0 。
  • NOTICE 罗列了 CXF 框架用到的相关第三方组件的授权协议以其它的相关信息。
  • README 文件中包含了 CXF 框架本身的一些简要说明。
  • release_notes.txt 包含了 CXF 发布时的一些信息,包括运行时所需要的环境,修复 BUG 的列表等。

CXF 框架支撑环境

CXF 框架是一种基于 Servlet 技术的 SOA 应用开发框架,要正常运行基于 CXF 应用框架开发的企业应用,除了 CXF 框架本身之外,还需要 JDK 和 Servlet 容器的支持。

CXF 支持非常多的特性,其中不同的特性对 JDK 版本的要求有所不同,但是 JDK 最低的版本是需要选择 JDK 5 或者以上版本。

Servlet 容器下载和安装

CXF 是一种基于 Servlet 技术的 SOA 应用开发框架,需要 Servlet 容器的支持。CXF 支持在多种 Servlet 容器中运行,包括 WebSphere、WebLogic、Tomcat、Jetty 等。为了说明的简单,


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值