`
chilongxph
  • 浏览: 135407 次
  • 性别: 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注入基中!!

相关推荐

    基于SSM+CXF构建的RESTFul webservice

    使用cxf、spring构建的rest风格webservice,其他相关技术springmvc、mybatis、druid等。代码中使用的数据库为sybase,请根据实际环境更改,需修改pom中引用的数据库驱动,依照entity类的属性建对应表,并修改config....

    Apache Cxf WebService整合Spring

    Apache Cxf WebService整合Spring 处理Map、非javabean式的复合类等CXF无法自动转化的类型 CXF为服务器端和客户端添加自定义拦截器进行权限检查验证并且控制台打印日志

    简单cxf+spring构建webservice服务

    NULL 博文链接:https://zhangzhennan.iteye.com/blog/1624624

    WebService with Apache CXF

    Apache CXF = Celtix + XFire,Apache CXF 的前身叫 Apache CeltiXfire,现在已经正式更名为 Apache CXF 了,以下简称为 CXF。CXF 继承了 Celtix 和 XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且...

    spring+hibernate+struts2+webservice示例

    这是个采用apache cxf实现webservice的示例,主要由spring整合hibernate、struts2实现webservice,里面struts2用到得较少……对于学习很有帮助,另外我觉得若是初学者,不过采用那方式,现在按照套方案做熟练后再去...

    springboot+cxf实现webservice示例

    springboot+cxf实现webservice示例 <groupId>org.springframework.boot <artifactId>spring-boot-starter <groupId>org.springframework.boot <artifactId>spring-boot-starter-web <!-- CXF ...

    spring_cxf实现webService

    基于CXF实现JAVA_WebService.doc Apache CXF 提供方便的Spring整合方法,可以通过注解、Spring标签式配置来暴露Web Services和消费Web Services

    spring+cxf的webservice

    WebService—CXF发布服务spring+cxf的doc文档,以及apache-cxf用到的的jar包

    CXF结合Spring发布Json格式WebService示例

    本实例工程使用Apache CXF组件快速开发WebService。基于Spring框架,使用了Maven项目,但由于时间原因,只使用了Maven Project的框架,还是使用lib文件夹存放所需的cxf库,传入传出对象支持Json格式。

    CXF WebService整合Spring示例工程代码demo

    CXF WebService整合Spring示例工程代码demo可以直接导入eclipse。参照网页http://www.cnblogs.com/hoojo/archive/2011/03/30/1999563.html 完成的webService服务提供。 大致步骤: 1.引入cxf和其他需要的jar包,(本...

    Spring+CXF开发WebService

    使用 CXF 做 webservice 简单例子 Apache CXF 是一个开放源代码框架,提供了用于方便地构建和开发 Web 服务的可靠基础架构。它允许创建高性能和可扩展的服务,您可以将这样的服务部署在 Tomcat 和基于 Spring 的轻...

    基于 SpringBoot+ +Mybatis+ Apache velocity 开发 webservice +源代码+文档说明

    基于SpringBoot + Spring + Apache CXF +Mybatis 开发SOAP的 WebService 服务 # 备注 | **版本** | **说明**| | ------ |:------:| | 1.0.0版本| | | 2.0.0版本|springboot启动| # 原理 Mybatis基于动态代理实现...

    WebServiceConfig java springboot利用Apache CXF创建webserice接口配置类

    webserviceApache CXF java springboot利用Apache CXF创建webserice接口 Apache CXF 核心架构是以BUS为核心,整合其他组件。 * Bus是CXF的主干, 为共享资源提供一个可配置的场所,作用类似于Spring的...

    Apache cxf对接webservice测试环境

    1. 前端,如JAX-WS,与核心代码的彻底分离。 2. 简单易用,例如,创建客户端和端点不需标注。...在面向服务的架构(SOA)基础设施项目中,CXF通常和Apache ServiceMix,Apache Camel以及Apache ActiveMQ一起使用。

    彻底了解|利用Apache CXF框架开发WebService

    CXF就是一个WebService的框架,在生产环境中一般情况下我们都使用框架来开发,这个框架简单的说就是将WebService的开发给简化了,而且还新增了拦截器。本文将带大家利用Apache CXF快速实现一个WebService。

    使用Spring+CXF开发WebService.doc

    Apache CXF 提供方便的Spring整合方法,可以通过注解、Spring标签式配置来暴露Web Services和消费Web Services 各种类型的Annotation。@WebService和@WebMethod是WSDL映射Annatotion。这些Annotation将描述Web ...

    java_webservice_JAX-RS.zip_cxf_jax_jax-rs_spring cxf

    在ssh架构中加入webservice服务,web服务使用Apache CXF,采用cxf+spring的方式发布web服务

    CXF WEBSERVICE入门,非常详细实用

    Apache CXF = Celtix + XFire,Apache CXF 的前身叫 Apache CeltiXfire,现在已经正式更名为 Apache CXF 了,以下简称为 CXF。CXF 继承了 Celtix 和 XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且...

Global site tag (gtag.js) - Google Analytics