`
chilongxph
  • 浏览: 138831 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Apache CXF2+Spring2.5轻松实现WebService

阅读更多
文章来源:http://tonyaction.blog.51cto.com/227462/202754
Apache CXF2+Spring2.5轻松实现WebService
1.概述
CXF 继承了 Celtix 和 XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且提供了多种 Binding 、DataBinding、Transport 以及各种 Format 的支持,并且可以根据实际项目的需要,采用代码优先(Code First)或者 WSDL 优先(WSDL First)来轻松地实现 Web Services 的发布和使用。
Apache CXF 是一个开源的 Services 框架,CXF 帮助您利用 Frontend 编程 API 来构建和开发 Services ,像 JAX-WS 。这些 Services 可以支持多种协议,比如:SOAP、XML/HTTP、RESTful HTTP 或者 CORBA ,并且可以在多种传输协议上运行,比如:HTTP、JMS 或者 JBI,CXF 大大简化了 Services 的创建,同时它继承了 XFire 传统,一样可以天然地和 Spring 进行无缝集成。



2.功能特性
CXF 包含了大量的功能特性,但是主要集中在以下几个方面:
1.支持 Web Services 标准:CXF 支持多种 Web Services 标准,包含 SOAP、Basic Profile、WS-Addressing、WS-Policy、WS-ReliableMessaging 和 WS-Security。
2.Frontends:CXF 支持多种“Frontend”编程模型,CXF 实现了 JAX-WS API (遵循 JAX-WS 2.0 TCK 版本),它也包含一个“simple frontend”允许客户端和 EndPoint 的创建,而不需要 Annotation 注解。CXF 既支持 WSDL 优先开发,也支持从 Java 的代码优先开发模式。
3.容易使用: CXF 设计得更加直观与容易使用。有大量简单的 API 用来快速地构建代码优先的 Services,各种 Maven 的插件也使集成更加容易,支持 JAX-WS API ,支持 Spring 2.0 更加简化的 XML 配置方式,等等。
4.支持二进制和遗留协议:CXF 的设计是一种可插拨的架构,既可以支持 XML ,也可以支持非 XML 的类型绑定,比如:JSON 和 CORBA。
5.支持多种标准:
a.支持 JAX-WS、 JAX-WSA、JSR-181 和 SAAJ;
b.支持 SOAP 1.1、1.2、WS-I BasicProfile、WS-Security、WS-Addressing、WS-RM 和 WS-Policy;
c.支持 WSDL 1.1 、2.0;
d.支持 MTOM;
6.多种传输方式、Bindings、Data Bindings 和 Format:
a.Bindings:SOAP、REST/HTTP;
b.Data Bndings:目前支持 JAXB 2.0、Aegis 两种,默认是 JAXB 2.0。XMLBeans、Castor 和 JiBX 数据绑定方式将在 CXF 2.1 版本中得到支持;
c.格式(Format):XML、JSON;
d.传输方式:HTTP、Servlet、JMS 和 Jabber;
e.可扩展的 API 允许为 CXF 增加其它的 Bindings,以能够支持其它的消息格式,比如:CSV 和固定记录长度。
7.灵活部署
a.轻量级容器:可在 Tomcat 或基于 Spring 的容器中部署 Services;
b.集成 JBI:可以在如 ServiceMix, OpenESB or Petals 等等的 JBI 容器中将它部署为一个服务引擎;
c.集成 SCA:可以部署在如 Tuscany 之类的 SCA 容器中;
d.集成 J2EE:可以在 J2EE 应用服务器中部署 Services,比如:Geronimo、JOnAS、JBoss、WebSphere Application Server 和 WebLogic Application Server,以及 Jetty 和 Tomcat;
e.独立的 Java 客户端/服务器。
8.支持多种编程语言
a.全面支持 JAX-WS 2.0 客户端/服务器编程模型;
b.支持 JAX-WS 2.0 synchronous、asynchronous 和 one-way API's;
c.支持 JAX-WS 2.0 Dynamic Invocation Interface (DII) API;
d.支持 wrapped and non-wrapped 风格;
e.支持 XML messaging API;
f.支持 JavaScript 和 ECMAScript 4 XML (E4X) ,客户端与服务端均支持;
g通过 Yoko 支持 CORBA;
h.通过 Tuscany 支持 SCA;
i.通过 ServiceMix 支持 JBI ;
9.代码生成
a.Java to WSDL;
b.WSDL to Java;
c.XSD to WSDL;
d.WSDL to XML;
e.WSDL to SOAP;
f.WSDL to Service;
3.轻松与Spring集成
3.1服务端
1.定义WebService所需暴露的接口:接口中只有一个方法public String vote,只需在接口定义处添加@WebService注明此接口将要提供服务.


2.编写接口实现类:vote方法中判断username入参是否为Michael,如果是将返回重复投票

3.服务器端配置文件:需要注意两个地方,将CXF所需的配置文件import到Spring容器中,但所需的3个配置文件并不在工程里,而是在Spring容器初始化时自动创建,这里需要显示的将其import进来;
定义了一个Webservice的端点,其中id是其存放在Spring容器中的标识, implementor用于标注实现类, address提供服务的地址.

4.web.xml配置:在web.xml中只需定义Spring容器的监听器,CXFServlet和CXFServlet mapping

3.2客户端
1.客户端配置文件(仅供客户端使用Spring框架):和服务器端得配置一样,也需要import相关CXF配置文件到Spring容器;同时还要使用定义客户端的bean,其中id为其存在Spring容器中的标识, serviceClass为WebService暴露接口的完全限定名, address为提供服务的地址.


2.客户端调用(使用Spring容器):只需创建Sping容器根据ID获取ISurveyService并调用所需方法

3. 客户端调用(java语言客户端):初始化代理工厂并将接口类型和服务地址设置近工厂类,就可获得所需服务

3.3WSDL



下面将包结构和运行环境贴出来



其实最庞大的是他依赖的包


代码是图片格式的,可以到附件中下载查看。

文章来源:http://tonyaction.blog.51cto.com/227462/202754
分享到:
评论
1 楼 yucai 2010-07-07  
这部分偶会,剩下的部分不会~~比如怎么把spring bean注入基中!!

相关推荐

    CXF2+Spring2.5开发WebService实例

    在本文中,我们将深入探讨如何使用Apache CXF 2与Spring 2.5框架来开发Web服务实例。Apache CXF是一个流行的开源项目,它提供了一种简单且强大的方式来实现和消费SOAP和RESTful Web服务。Spring框架则以其模块化、...

    CXF+Spring+Tomcat发布WebService

    【标题】"CXF+Spring+Tomcat发布WebService"涉及的是使用Apache CXF框架与Spring框架结合,在Tomcat服务器上部署和消费Web服务的过程。这是一个常见的企业级应用开发场景,特别是对于实现基于SOAP协议的Web服务。...

    Weblogic92+CXF+XDoclet+Spring轻松搞定webservice 例子

    在这个例子中,通过CXF和Spring的结合,开发者可以轻松地创建和发布Web服务,实现跨平台的数据交换。 【文件结构】 - `.classpath`:这是Eclipse项目的一个配置文件,包含了项目所需的库和类路径设置。 - `xdoclet-...

    CXF2.7+Spring3 Java WebService 集成用例

    在本文中,我们将深入探讨如何将Apache CXF 2.7与Spring 3框架集成,以便在Java环境中创建和消费Web服务。这是一个重要的技术组合,因为它允许开发人员利用Spring的依赖注入和管理能力,以及CXF的强大Web服务支持。...

    SpringBoot+Mybatis+CXF框架,实现Restful api与 WebService api接口的大实验

    3. 接下来,我们需要实现Restful API和WebService API接口,使用Spring Boot的Restful API和CXF框架来实现学生信息的增删改查操作。 4. 最后,我们需要测试Restful API和WebService API接口,确保其正常工作。 结论...

    CXF3.1.16 +Spring4 +MyBatis + Maven自定义拦截器 WebService实例源码下载

    "CXF3.1.16 +Spring4 +MyBatis + Maven自定义拦截器 WebService实例源码下载" 这个标题揭示了该项目的核心技术栈,包括: 1. CXF 3.1.16:这是一个开源的服务框架,用于构建和开发服务,支持SOAP和RESTful Web服务...

    cxf2.7+spring4

    在Spring 4中,我们还可以利用注解驱动的方式来简化配置,例如使用`@WebService`注解标记服务接口,`@WebServiceService`注解标记服务实现,然后在Spring配置中使用`@ImportResource`导入CXF的配置。 此外,对于...

    CXF3.0.9+SPRING开发webservice例子

    当我们谈论"CXF3.0.9+SPRING开发webservice例子"时,这意味着我们将探讨如何结合这两个强大的工具来创建和消费Web服务。 首先,让我们深入了解CXF。Apache CXF是基于Java的,它支持多种Web服务标准,如SOAP、...

    cxf+spring+tomat开发webservice所需jar包

    在开发Web服务时,CXF、Spring和Tomcat是三个重要的组件。让我们深入探讨这些技术以及它们如何协同工作创建一个有效的Web服务环境。 1. **CXF**:CXF(Code-first eXtended Framework)是一个开源的服务框架,用于...

    cxf webservice+spring+mybatis 整合(含Jar包)

    在IT行业中,构建一个高效且灵活的企业级应用是至关重要的,而"CXF Webservice+Spring+MyBatis 整合"就是一个这样的解决方案。这个整合利用了三个强大的开源框架:Apache CXF、Spring以及MyBatis,来实现Web服务、...

    cxf+Spring实现webservice工程

    当我们谈论"CXF+Spring实现Web服务工程"时,我们实际上是在讨论如何利用Apache CXF框架和Spring框架来创建和消费Web服务。Apache CXF是一个强大的开源框架,它提供了多种方式来构建和部署Web服务,而Spring则以其...

    cxf+spring webservice demo client

    【标题】:“cxf+spring webservice demo client” 在IT领域,Web服务是一种常见的系统间交互方式,它允许不同应用程序之间共享数据和服务。本示例是关于如何使用Apache CXF和Spring框架创建一个Web服务客户端的...

    CXF3.0.2+Spring3.2.14 WebService入门实例四

    在本文中,我们将深入探讨如何使用Apache CXF 3.0.2版本和Spring 3.2.14框架来创建一个基于WebService的文件传输应用。Apache CXF是一个流行的开源框架,用于构建和开发Web服务,而Spring则是一个全面的企业级应用...

    简单cxf+spring构建webservice服务

    标题“简单cxf+spring构建webservice服务”指的是使用Apache CXF框架与Spring框架结合来创建Web服务。Apache CXF是一个开源的Java框架,它允许开发者创建和消费各种Web服务,包括SOAP和RESTful风格。Spring框架则为...

    cxf+spring发布webservice和restservice

    本项目“cxf+spring发布webservice和restservice”专注于利用Apache CXF框架与Spring框架结合,实现这两种服务的发布。Apache CXF是一个开源的、功能丰富的服务栈,它使得开发者能够轻松地构建和部署SOAP和RESTful ...

    cxf+spring的webservice实例

    总的来说,"cxf+spring的webservice实例"是一个实践性的教程,旨在帮助开发者理解如何在Spring环境中利用CXF快速构建和部署Web服务。通过这个实例,你可以掌握从创建服务到发布、测试的整个流程,进一步提升你的Java...

    cxf+spring实现webservice例子

    在这个“cxf+spring实现webservice”的例子中,我们首先需要确保已经安装了Eclipse IDE,并且配置了Java和Maven环境。然后,我们需要创建一个新的Maven项目,并在pom.xml文件中添加CXF和Spring的相关依赖。这些依赖...

    WebService CXF+struts+spring 示例

    在IT行业中,构建Web服务是常见的任务之一,而Apache CXF、Struts和Spring这三大框架的结合使用,能够帮助开发者高效地实现这一目标。本文将深入探讨这三大框架的集成及其在创建Web Service CXF+Struts+Spring示例中...

Global site tag (gtag.js) - Google Analytics