1.3 Apache CXF的功能特性
Apache CXF是一个开放源码的Web服务框架。该框架提供了一个基于Web Services标准并易于使用的编程模型。Web Services可以使用多种不同的应用协议,诸如针对HTTP的应用协议就包含SOAP、XML和JSON、REST风格等。Apache CXF框架也支持JMS(Java消息服务)的各种传输协议。
1.3.1 支持众多标准
1. 支持JSR的相关规范和标准
JAX-WS——Java API for XML-Based Web Services (JAX-WS) 2.0- JSR-224
Web Services Metadata for the Java Platform——JSR-181
JAX-RS——The Java API for RESTful Web Services - JSR-311
SAAJ——SOAP with Attachments API for Java (SAAJ) - JSR-67
2. 支持WS-*及其相关规范
● 基本规范支持:WS-I Basic Profile 1.1。
● 服务质量规范:Web服务可靠消息传输(WS-Reliable Messaging,WS-RM)。
● 元数据规范:WS-Policy、WSDL 1.1。
● 通信安全规范:WS-Security、WS-SecurityPolicy、WS-SecureConversation、WS-Trust(部分支持)。
● 消息支持规范:WS-Addressing、SOAP 1.1、SOAP 1.2、MTOM(Message Transmission Optimization Mechanism)。
1.3.2 支持多种传输协议和协议绑定、数据绑定和数据格式
● 协议绑定:SOAP、REST/HTTP、纯XML。
● 数据绑定:JAXB 2.x、Aegis、Apache XMLBeans、SDO(Service Data Objects)、JiBX(部分支持)。
● 格式:XML、JSON、FastInfoset。
● 传输协议:HTTP、Servlet、JMS和Local(即JVM内部消息通信机制),还有其他通过Apache CXF的Camel传输协议,如SMTP/POP3、TCP和Jabber等。
Apache CXF可扩展的API允许开发者方便地对绑定和消息格式进行扩展,如CORBA/IIOP等格式支持。
1.3.3 灵活部署
● 轻量级容器:Jetty、Tomcat或基于Spring的容器。
● JBI集成:发布成为JBI容器中的服务引擎,这些JBI容器有ServiceMix、OpenESB或Petals等。
● Java EE集成:可部署在Java EE应用服务器中,如Tomcat、JBoss、Apache Geronimo、JOnAS、RedHat JBoss、OC4J、Oracle WebLogic和IBM WebSphere。
● 单独运行的客户机/服务器。
1.3.4 支持多种语言编程
● 完全支持JAX-WS 2.X客户机/服务器编程模型。
● JAX-WS 2.X的同步、异步和单程API。
● JAX-WS 2.X动态调用接口(Dll)API。
● JAX-RS的RESTful客户端。
● 支持包装(wrapped)和非包装(non-wrapped)风格。
● XML消息传递API。
● 客户端和服务器编程都支持使用JavaScript和ECMAScript 4 XML(E4X)。
● 通过Yoko提供对CORBA的支持。
● 通过ServiceMix来支持JBI。
1.3.5 支持的工具
● 代码生成工具:WSDL到Java,WSDL到JavaScript,Java到JavaScript。
● WSDL生成工具:Java到WSDL,XSD到WSDL,IDL到WSDL,WSDL到XML。
● 增加服务端点:WSDL到IDL。
● 验证文件:WSDL验证。