CXF学习笔记1

开始之前

SOA 目前已经成为了人人皆知的热点,对分析人员来讲,SOA 重点需要加强对业务服务的分析;各种不同的服务是 SOA 的重要基础;ESB 则提供了一个舞台,让各种异构系统的业务服务在这里进行实际业务的展现、集成等。对开发人员来讲,如何更快速地创建出更稳定的业务服务组件是关键;应该更加深入领会使用面向接口的组件化开发方式;开发人员重点是保障服务的生命周期,其它的事情则让业务开发人员来做。

SOA 的重点在于服务的重用,更高一级层次的重用则属于业务层次了。但是对于开发人员来说,重用的层次需要自己掌握与提升,从代码级到组件级、再到业务层次等。

关于本教程

本教程将采取从简单到复杂,知识点和实际代码相结合的方式。先讲述一些简单的概念和代码,使大家先对 CXF 建立起直观的印象,并且能够写出自己的应用程序。然后再介绍 CXF 的类与 Spring 2.0 的简单整合,并且讲述如何使用 Web Services,从而能够在建立好程序的基础之上,增加业务逻辑,组建自己的 Web Services 应用程序。

目标

学完本教程后,您将不仅能够掌握 Apache CXF 的基本知识,可以用 CXF 编写基本的 Web Services,并且能够增加自己的业务逻辑,从而开发满足自己需求的 Web Services 应用,最重要的是学会与 Spring 2.0 框架的无缝整合,快速轻松地实现服务的发布与消费。

先决条件

要学习本教程,您需要有一定的编程经验,并了解面向对象的概念。同时您应该熟悉 Eclipse 开发环境,熟悉 Ant 的基本使用,熟悉基本的 Web 应用程序开发,熟悉基本的 Spring 概念与配置文件的编写。

代码示例和安装要求

您需要一些工具才能试用本教程中的代码。所有这些工具都可以免费下载:

  • Java SDK 1.5 或更高版本的 JDK;
  • Apache Ant 1.6.5 或更高版本;
  • Eclipse 3.2 或更高版本;
  • Apache CXF 2.0.2 版本。

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。

项目目标

下面列出了来自 Apache CXF 官方网站(参见 参考资源)的项目目标。

概要

  • 高性能
  • 可扩展
  • 简单且容易使用

支持多种标准

  • 支持 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 ;

代码生成

  • Java to WSDL;
  • WSDL to Java;
  • XSD to WSDL;
  • WSDL to XML;
  • WSDL to SOAP;
  • WSDL to Service;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值