1、为什么是CXF:
话说没有最好最牛B的框架,只有适合的框架。当然这是大家都这么说的,在实际的生产环节中可能更复杂:历史问题、团队对框架的熟悉程度等都可能成为原因。好吧我们来看看CXF官网怎么说:
1、实现JAX-WS规范
2、Spring一等公民、天然集成
3、多种数据绑定(貌似特别推崇自己的实现Aegis Databinding)
4、支持RESTful
5、WS-* Support
2、如何与系统集成
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)
3、如何处理依赖
打开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,我们看好上面几点就可以干活了
分享到:
相关推荐
Apache CXF是一个开源的Java框架,它主要用于构建和开发服务导向架构(SOA)和Web服务。这个"apache-cxf-2.4.6.zip"压缩包包含了CXF框架的2.4.6版本,这是一个相对早期的版本,发布于2012年。在深入探讨CXF之前,...
【标题】:“使用CXF:Java 2 WSDL” 【描述】:在Java开发中,Apache CXF是一个广泛使用的开源框架,它允许开发者构建和部署Web服务。"Java 2 WSDL"指的是从Java类生成WSDL(Web Services Description Language)...
Apache CXF是一个开源的Java框架,它主要用于构建和开发服务导向架构(SOA)中的Web服务。这个"apache cxf_jar包"包含了实现基于Java的Web服务所需的一系列核心库。下面我们将深入探讨这些jar文件及其在Web服务实现...
Apache CXF是一个开源的Java框架,它主要用于构建和开发服务导向架构(SOA)和Web服务。CXF这个名字是“CXF = XFire + XSB”,其中XFire是早期的项目,而XSB代表XML Web Services Bus。这个版本,"apache-cxf-2.4.0...
implementation 'org.apache.cxf:cxf-rt-frontend-jaxws:3.4.x' // 替换为最新稳定版 implementation 'org.apache.cxf:cxf-rt-transports-http:3.4.x' // 替换为最新稳定版 } ``` ### 3. 创建和运行CXF服务 ####...
<cxf:bus-ref>myBus</cxf:bus-ref> </cxf:client> ``` 4. **执行调用**:在Spring配置生效后,可以直接通过客户端接口进行服务调用。 **总结** Apache CXF提供了简洁的API和工具,使得发布和调用SOAP 1.2 Web...
在本文中,我们将深入探讨如何使用Apache CXF的契约优先(Contract First)开发方式来创建一个客户端实现。CXF是一个开源的Java框架,它提供了一种灵活的方式来进行Web服务的开发,包括服务端和客户端。契约优先的...
<cxf:inInterceptors> </cxf:inInterceptors> <cxf:outInterceptors> </cxf:outInterceptors> </cxf:interceptors> </cxf:bus> <!-- CXF服务配置 --> <cxf:service id="yourWebService" serviceClass=...
在这个配置中,`cxf:jaxws-service`元素定义了服务,`serviceClass`属性指定服务接口,`wsdlLocation`指向WSDL文件的位置。`cxf:dataBinding`元素用于设置数据绑定为Aegis。`myServiceInterface`和`myServiceImpl`...
在上述配置中,`<cxf:bus>`定义了CXF总线,`<cxf:features>`添加了日志记录功能。`<bean>`定义了服务实现,`<cxf:service>`则声明了服务接口和地址。 在实际开发中,【压缩包子文件的文件名称列表】"CXF"可能包含...
【CXF源码分析】 Apache CXF 是一个开源的Java框架,主要用于构建和服务导向架构(SOA)的应用程序。它提供了多种方式来实现Web服务,包括基于Java API for Web Services (JAX-WS) 和 Java API for RESTful Web ...
【标题】"CXF视频:1、使用CXF实现简单的HelloWorld",这是一段关于Apache CXF框架的初级教程,旨在引导初学者通过实际操作理解如何利用CXF创建一个基本的“HelloWorld”服务。Apache CXF是一个开源的Java框架,它...
Maven坐标:org.apache.cxf:cxf-core:3.0.1; 标签:cxf、core、apache、jar包、java、API文档、中文版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中...
在Java开发中,CXF(Apache CXF)是一个开源的服务框架,它广泛用于构建和部署Web服务。CXF支持多种协议和绑定,包括SOAP、RESTful HTTP、JMS等。而JAXB(Java Architecture for XML Binding)是Java平台的标准,...
CXF(CXF: Composite eXtensible Services Framework)是一款开源的Java框架,主要用于构建和开发服务导向架构(SOA)中的Web服务。它支持多种协议和标准,如SOAP、RESTful、JAX-RS和JAX-WS等。Spring框架则是Java...
你可以配置`<cxf:bus>`元素下的`<cxf:features>`或`<cxf:properties>`标签来控制日志级别和实现。 - 例如,添加`<cxf:property key="org.apache.cxf.logging.FrontendLoggerClass" value="org.apache.cxf.common....
<cxf:endpoint id="myService" address="/myService" serviceClass="com.example.MyService" xmlns:ns="http://example.com/service"> <!-- 配置服务相关的属性 --> </cxf:endpoint> ``` 3. **定义服务接口和...
CXF(CXF: Apache CXF)是一个开源的Java框架,专为构建和部署Web服务而设计。Spring框架则是Java企业级应用开发的事实标准,提供了一个全面的编程和配置模型,使得开发、测试和集成复杂的应用变得简单。当我们谈论...
CXF(CXF: Composite eXtensible Framework)是一个开源的Java服务框架,它主要用于构建和服务消费Web服务。而Spring是一个广泛使用的Java应用框架,提供了强大的依赖注入、AOP(面向切面编程)等功能。将CXF与...
在上面的配置中,`<cxf:features>`元素启用了JSON支持,`<cxf:jsr311/>`则支持JAX-RS标准,使得CXF可以处理RESTful请求。`<jaxws:endpoint>`定义了服务的实现类和访问地址。 然后,创建一个Java类(如`...