1.CXF API
CXF整体架构有以下部分组成:
Bus: 包含这extensions, interceptors 和 Properties的注册。
Front-end: Front-end: 规定了创建服务的编程模型
Messaging & Interceptors:定义了低层级的message and pipeline层,绝大多数的功能都基于该层。
Service Model:用来描述服务规范的,类似WSDL的服务模型来
Pluggable Data Bindings:(后续祥说)
Protocol Bindings:bindings提供了解释协议的功能
Transports: Transportfactory 创建目的地(接受方)和输送出口(发送方)【Destinations (Receiving) and Conduits (Sending)】

在下面这部分,我们将依次查看各层,并弄清楚他们如何一起协作的。
1.1 BUS
CXF的中枢系统,CXF运行时共享资源的提供者。这些共享资源包括WSDL manager和binding factory manager。
可以很容易将BUS共享的资源延伸到你自定义的资源或者服务,甚至替换掉默认的资源,如:用自定义HTTP destination factory (基于Tomcat的)的替换掉系统默认基于Jetty的HTTP destination factory 。
扩展性使得依赖注入成为可能,默认的bus实现就是基于spring框架的。
SpringBusFactory 会在你classpath下的META-INF/cxf 目录下搜索所有的bean配置文件。
(BUS配置详见链接:BUS-Confuration)
1.2 服务调用是如何处理。
client-side

server-side

1.3 Front-ends
Front-ends规定了与CXF交互通信的编程模型。
现在CXF提供 JAX-WS, JAX-RS, Simple和Javascript 四种front-end的API。这四个实现的每一个都同CXF其他部分清爽的分隔开了。Front-end通过添加到Services 和 Endpoints的拦截器来提供自身的功能。
1.4 Messaging & Interceptors
CXF建立在Messages、Interceptors和InterceptorChains组成的一个普通消息层之上。拦截器Interceptor是功能的基本单元。消息的处理和发送功能的分离使得CXF的架构非常灵活,可以在消息处理的任何点上配置拦截器。这样CXF就有能力控制消息是终止或者者继续沿着拦截器链处理。
拦截器通过方法handleMessagel在消息上执行一些操作。多个连接器可以构成拦截器链。
拦截器是单向的并且他并不知晓自己所处理的是请求、还是响应,抑或错误。
CXF提供的InterceptorChain实现叫做PhaseInterceptorChain。当拦截器被添加到链中的时候,他们就会被归类到有序的不同phase中。PhaseInterceptor将会管理同一个phase内部不同的拦截器间的顺序。
错误处理
在处理过程中,拦截器可能在任一个点抛出错误,这将导致整个链停止继续调用并且将会清理现场。清理现场操作一般是逆序在抛错前调用过的拦截器上调用handleFault方法。

- 大小: 11.7 KB

- 大小: 16.2 KB

- 大小: 23.3 KB
分享到:
相关推荐
Apache CXF是一个开源框架,旨在简化Web服务的构建与开发过程。它支持多种Web服务标准,包括但不限于JAX-WS、SOAP、WSDL、MTOM、WS-BasicProfile、WS-Addressing、WS-Policy、WS-ReliableMessaging、WS-Security等。...
CXF框架作为Apache项目下的开源工具包,提供了全面的支持,帮助开发者快速构建和部署Web Service应用。通过深入理解SOAP与WSDL的工作原理,我们可以更有效地利用CXF框架,实现服务的开发、部署和管理。掌握这些核心...
Apache CXF是一个功能强大的WebService框架,支持RESTful服务和传统的SOAP服务。CXF提供了丰富的工具和插件,使得集成变得非常容易。 - **特点**: - **全面的支持**:CXF不仅支持SOAP,还支持RESTful风格的服务。...
- Apache CXF:一套智能 Web 服务套件(JAX-WS)。 - Apache MINA:网络框架。 ### 快速入门 为了快速上手 Apache Camel,用户可以通过阅读手册第二章的简单示例开始。对于希望更深入学习的读者,建议跳过快速入门...
在Java中,我们通常使用Apache CXF或JAX-WS(Java API for XML Web Services)框架来创建和调用Web服务。以下是一个简单的步骤概览: 1. **添加依赖**:首先,确保你的项目包含相应的库,如Apache CXF或JAX-WS的JAR...
CXF的核心组件是`org.apache.cxf.Bus`,类似于Spring框架中的`ApplicationContext`。`Bus`由`BusFactory`创建,默认情况下使用的是`SpringBusFactory`,这意味着CXF默认集成了Spring框架的支持。 综上所述,JAVA...
具体来说,使用了Spring框架来管理和控制服务的生命周期,使用Apache CXF框架来构建Web服务。此外,还使用了Maven作为构建工具,以确保项目的高效管理和构建过程的一致性。 **3. 实际应用效果** 实际应用表明,该...
Servicemix是Apache项目下的一个开源ESB实现,它基于OSGi(开放服务网关倡议)标准,提供了一个灵活且可扩展的框架,用于集成和管理各种服务。Servicemix的核心优势在于它能够轻松地部署和管理WebService、POJOs...
- **CXF**:结合了Apache Axis和XFire的优点,提供了一个高度灵活且功能丰富的WebService框架,支持多种传输协议和编码方式。 #### 4. SOAP头验证与WSDL规范 - **SOAP头验证**:在WebService通信中,SOAP头通常...
- **Apache CXF**:这是一个智能 Web 服务套件(JAX-WS)。 - **Apache MINA**:这是一个网络框架。 #### 二、快速入门 为了快速开始使用 Apache Camel,本章提供了一些简单的示例供参考。对于希望更深入了解的...
- **CXF Transport**:支持使用 Apache CXF 框架构建的 Web 服务。 - **EJB Transport**:与 Java EE 的企业 JavaBeans 集成。 - **Email Transport**:发送和接收电子邮件。 - **File Transport**:读取和写入文件...
5. **与其他Apache项目兼容**:例如,与Tomcat、CXF等其他Apache项目的良好兼容性。 **开发指南内容概览** "XFire开发指南.pdf" 可能涵盖了如何安装和配置XFire环境,创建第一个WebService,使用XFire的注解和API...