Apache CXF 快速上手教程基础架构CXF 旨在为服务创建必要的基础设施,它的整体架构主要由以下几个部分组成:1.Bus它是 C X F 架构的主干,为共享资源提供了一个可配置的场所,作用非常类似于 Sp ring的 ApplicationContext。这些共享资源包括 WSDL管理器、绑定工厂等。通过对 Bus进行扩展,可以方便地容纳自己的资源,或替换现有的资源。默认 Bus实现是基于 Spring的,通过依赖注入,将运行时组件串起来。Bus的创建由 BusFactory负责,默认是 SpringBusFactory,对应于默认Bus实现。在构造过程中,SpringBusFactory会搜索META-INF/cxf(就包含在 CXF的 Jar中)下的所有 Bean配置文件,根据它们构建一个 ApplicationContext。开发者也可提供自己的配置文件来定制 Bus。2.消息传递和拦截器(Interceptor)CXF 建立于一个通用的消息层之上,主要由消息、拦截器和拦截器链(InterceptorChain)组成。CXF 是以消息处理为中心的,熟悉 JSP/Servlet的开发者可以将拦截器视为 CXF 架构中的“Filter”,拦截器链也与“FilterChain”类似。通过拦截器,开发者可以方便地在消息传递、处理的整个过程中对 CXF 进行扩展。拦截器的方法主要有两个: handleMessage和handleFault,分别对应消息处理和错误处理。在开发拦截器的时候需要注意两点:拦截器不是线程安全的,不建议在拦截器中定义实例变量并使用它。这一点跟 JSP/Servlet中对于 Filter的处理是一样的;不要调用下一个拦截器的 handleMessage或 handleFault,这个工作由 InterceptorChain来完成。3.前端(FrontEnd)它为 CXF 提供了创建服务的编程模型,当前主要的前端就是 JAX-WS。4.服务模型CXF 中的服务通过服务模型来表示。它主要有两部分:ServiceInfo和服务本身。ServiceInfo作用类似 WSDL,包含接口信息、绑定、端点(EndPoint)等信息;服务则包含了 ServiceInfo、数据绑定、拦截器和服务属性等信息。可使用 Java类和 WSDL来创建服务。一般是由前端负责服务的创建,它通过 ServiceFactory来完成。5.绑定(Binding)绑 定 提 供 了 在 传 输 之 上 映 射 具 体 格 式 和 协 议 的 方 法 , 主 要 的 两 个 类 是 Binding和BindingFactory。BindingFactory负责创建 Binding。6.传输(Transport)为了向绑定和前端屏蔽传输细节, CXF提供了自己的传输抽象。其中主要有两个对象:Conduit和 Destination。前者是消息发送...