话说没有最好最牛B的框架,只有适合的框架。当然这是大家都这么说的,在实际的生产环节中可能更复杂:历史问题、团队对框架的熟悉程度等都可能成为原因。好吧我们来看看CXF官网怎么说:
1、实现JAX-WS规范
2、Spring一等公民、天然集成
3、多种数据绑定(貌似特别推崇自己的实现Aegis Databinding)
4、支持RESTful
5、WS-* Support
CXF提供了一些列的特性,但是在我们自己的应用中如何使用,也许我们需要先解决如下问题
1、Transports:我们开发的webservice基于什么样传输协议:http、jms、local
2、Bindings:绑定完成的是服务消息和具体协议的映射,具体支持的绑定有soap、pure xml、http
3、Message Interception and Modification:比如我们需要对消息的header校验、对消息加密传输、流的传播等。比如常见的Interceptors或JAX-WS handler
4、Transmitting Binary Data:传输二进制数据
5、WS-*规范
或者我们可以简单点来说明这个问题:我们开发的webservice采用什么样的协议、什么前端、采用何种数据绑定、是否需要采取安全的策略,比如(SOAP/JAX-WS/JAXB或RESTfull(HTTP)/JAX-WS/JAXB)
打开CXF的二进制文件,解压如版本apache-cxf-2.7.0,在modules下我们可以见到许多jar包,到底我们在实际开发中需要哪些?
观察jar包的命名我们可以大致区分为以下几类:
1、cxf-rt-bindings-xxx-version.jar
2、cxf-rt-databinding-xxx-version.jar
3、cxf-rt-frontend-xxx-version.jar
4、cxf-rt-transports-xxx-version.jar
5、cxf-rt-ws-xxx-version.jar
这几个模块与我们前一篇讲述的模块很好的迎合,比如我们采用SOAP/JAX-WS/JAXB这种方法,那么我们需要加入
cxf-rt-bindings-soap-2.7.0.jar
cxf-rt-databinding-jaxb-2.7.0.jar
cxf-rt-frontend-jaxws-2.7.0.jar
cxf-rt-transports-http-2.7.0.jar
这里http://cxf.apache.org/docs/cxf-dependency-graphs.html有各个模块之间的依赖,不怕晕的话就仔细看看吧,好在有maven,我们看好上面几点就可以干活了