Apache CXF 介紹

jopen 10年前發布 | 23K 次閱讀 WEB服務/RPC/SOA 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 CXF已經是一個正式的Apache頂級項目。

  Apache CXF 是一個開源的 Services 框架,CXF 幫助您利用 Frontend 編程 API 來構建和開發 Services ,像 JAX-WS 。這些 Services 可以支持多種協議,比如:SOAP、XML/HTTP、RESTful HTTP 或者 CORBA ,并且可以在多種傳輸協議上運行,比如:HTTP、JMS 或者 JBI,CXF 大大簡化了 Services 的創建,同時它繼承了 XFire 傳統,一樣可以天然地和 Spring 進行無縫集成。

       Apache CXF 是一個開放源代碼框架,提供了用于方便地構建和開發 Web 服務的可靠基礎架構。它允許創建高性能和可擴展的服務,您可以將這樣的服務部署在 Tomcat 和基于 Spring 的輕量級容器中,以及部署在更高級的服務器上,例如 Jboss、IBM® WebSphere® 或 BEA WebLogic。

 

       該框架提供了以下功能:

  • Web 服務標準支持:CXF 支持以下 Web 服務標準:

    • Java API for XML Web Services (JAX-WS)

    • SOAP

    • Web 服務描述語言(Web Services Description Language ,WSDL)

    • 消息傳輸優化機制(Message Transmission Optimization Mechanism,MTOM)

    • WS-Basic Profile

    • WS-Addressing

    • WS-Policy

    • WS-ReliableMessaging

    • WS-Security

  • 前端建模:CXF 提供了前端建模的概念,允許您使用不同的前端 API 來創建 Web 服務。API 允許您使用簡單的工廠 Bean 并通過 JAX-WAS 實現來創建 Web 服務。它還允許您創建動態 Web 服務客戶端。

  • 工具支持:CXF 提供了用于在 Java Bean、Web 服務和 WSDL 之間進行轉換的不同工具。它提供了對 Maven 和 Ant 集成的支持,并無縫地支持 Spring 集成。

  • RESTful 服務支持:CXF 支持代表性狀態傳輸(Representational State Transfer,RESTful )服務的概念,并支持 Java 平臺的 JAX-RS 實現。(本系列的第 2 部分將提供有關 RESTful 服務的更多信息。)

  • 對不同傳輸和綁定的支持:CXF 支持不同種類的傳輸,從 XML 到逗號分隔值 (CSV)。除了支持 SOAP 和 HTTP 協議綁定之外,它還支持 Java Architecture for XML Binding (JAXB) 和 AEGIS 數據綁定。

  • 對非 XML 綁定的支持:CXF 支持非 XML 綁定,例如 JavaScript Object Notation (JSON) 和 Common Object Request Broker Architecture (CORBA)。它還支持 Java 業務集成(Java Business Integration,JBI)體系架構和服務組件體系架構(Service Component Architecture,SCA)。

  • code first 或者 xml first  : 支持使用code first 或者 xml first 的方式來創建web服務。

 

功能特性

  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。

項目目標

  下面列出了來自 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 和固定記錄長度。

編輯本段Apache CXF特點

靈活部署

   輕量級容器:可在 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;  

        CXF 框架支撐環境  

        CXF 框架是一種基于 Servlet 技術的 SOA 應用開發框架,要正常運行基于 CXF 應用框架開發的企業應用,除了 CXF 框架本身之外,還需要 JDK 和 Servlet 容器的支持。

 

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!