`
绝缘材料
  • 浏览: 2965 次
  • 性别: Icon_minigender_1
  • 来自: 天津
最近访客 更多访客>>
社区版块
存档分类
最新评论

Apache CXF2+Spring2.5轻松实现WebService[附源码]

阅读更多

Apache CXF2+Spring2.5轻松实现WebService[附源码]


提示:下面有代码请耐心阅读,代码以图片形式展现,个别图片由于尺寸的原因显示不清,可以点击图片在新窗口中打开以进行查看.

推荐文章:

简历群发器设计以及代码实现JDK6HTTP+DOM4j

Spring2.5注释语法(上)——Spring2.5注释驱动的IoC

Spring 2.5:Spring MVC中的新特性

注意:源码已经提供下载,解压缩之后先看readme.

1.概述

CXF 继承了 Celtix XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且提供了多种 Binding DataBindingTransport 以及各种 Format 的支持,并且可以根据实际项目的需要,采用代码优先(Code First)或者 WSDL 优先(WSDL First)来轻松地实现 Web Services 的发布和使用。
Apache CXF
是一个开源的 Services 框架,CXF 帮助您利用 Frontend 编程 API 来构建和开发 Services ,像 JAX-WS 。这些 Services 可以支持多种协议,比如:SOAPXML/HTTPRESTful HTTP 或者 CORBA ,并且可以在多种传输协议上运行,比如:HTTPJMS 或者 JBICXF 大大简化了 Services 的创建,同时它继承了 XFire 传统,一样可以天然地和 Spring 进行无缝集成。

 

 

 

2.功能特性
CXF 包含了大量的功能特性,但是主要集中在以下几个方面:
1.
支持 Web Services 标准:CXF 支持多种 Web Services 标准,包含 SOAPBasic ProfileWS-AddressingWS-PolicyWS-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-WSAJSR-181 SAAJ
 b.
支持 SOAP 1.11.2WS-I BasicProfileWS-SecurityWS-AddressingWS-RM WS-Policy
 c.
支持 WSDL 1.1 2.0
 d.
支持 MTOM
6.
多种传输方式、BindingsData Bindings Format: 
 a.BindingsSOAPREST/HTTP
 b.Data Bndings
:目前支持 JAXB 2.0Aegis 两种,默认是 JAXB 2.0XMLBeansCastor JiBX 数据绑定方式将在 CXF 2.1 版本中得到支持;
 c.
格式(Format):XMLJSON
 d.
传输方式:HTTPServletJMS 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,比如:GeronimoJOnASJBossWebSphere Application Server WebLogic Application Server,以及 Jetty Tomcat
 e.
独立的 Java 客户端/服务器。
8.
支持多种编程语言
 a.全面支持 JAX-WS 2.0 客户端/服务器编程模型;
 b.
支持 JAX-WS 2.0 synchronousasynchronous 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所需的配置文件importSpring容器中,但所需的3个配置文件并不在工程里,而是在Spring容器初始化时自动创建,这里需要显示的将其import进来;
 
定义了一个Webservice的端点,其中id是其存放在Spring容器中的标识, implementor用于标注实现类, address提供服务的地址.

 

 

 

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

 

 

3.2客户端

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

 

 

 

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

 

 

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

 

 

3.3WSDL

 

 

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

 

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

 

 

分享到:
评论

相关推荐

    Apache CXF2+Spring2.5轻松实现WebService

    本教程将深入探讨如何利用Apache CXF 2与Spring 2.5来构建和使用WebService。 首先,让我们理解这两个组件的基本概念。Apache CXF是一个全面的服务框架,它支持多种Web服务规范,如SOAP、RESTful、WS-*等。它提供了...

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

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

    CXF3.0.9+SPRING开发webservice例子

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

    简单cxf+spring构建webservice服务

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

    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 应用开发

    标题 "cxf+spring=webservice CXF 应用开发" 暗示了我们将讨论如何结合Apache CXF和Spring框架来创建Web服务。Apache CXF是一个开源的Java框架,主要用于构建和部署SOAP和RESTful Web服务。Spring框架则是一个广泛...

    maven+spring+cxf webservice demo

    【描述】"maven+spring+cxf 的webservice开发源码,欢迎大家指点,谢谢"表明这个项目是一个开源的学习资源,包含了实际的源代码,开发者可以借此学习如何在实际项目中使用Maven、Spring和CXF来开发Web服务。...

    webservice+cxf+spring

    【标题】:“WebService+CXF+Spring”是一个关于在Java环境中使用Apache CXF框架与Spring框架集成实现Web服务的专题。Apache CXF是一个开源的Web服务框架,它允许开发人员创建和部署SOAP和RESTful Web服务。Spring...

    xfire+spring+maven构建webservice服务器和客户端

    标题中的“xfire+spring+maven构建webservice服务器和客户端”揭示了本教程将围绕三个主要技术进行讨论:XFire、Spring和Maven。这三者都是Java开发中不可或缺的工具,尤其在构建Web服务方面。 XFire是早期的一个...

    Spring + CXF + 注解方式(webService)

    标题“Spring + CXF + 注解方式(webService)”揭示了本次讨论的核心内容,即如何使用Spring框架与Apache CXF结合,并通过注解的方式来实现Web服务。Apache CXF是一个开源的服务框架,它允许开发者创建和消费各种不同...

    cxf+spring 无包

    【标题】"CXF+Spring 无包"指的是在不依赖特定打包工具(如Maven或Gradle)的情况下,利用Apache CXF和Spring框架构建Web服务的实例。Apache CXF是一个开源服务框架,它允许开发者创建和消费各种Web服务,包括SOAP和...

    idea + spring4.3.7.RELEASE+cxf3.1.0整合+客户端调用

    本教程将围绕"idea + spring4.3.7.RELEASE + cxf3.1.0"的整合进行详细讲解,旨在帮助开发者理解如何在IDEA(IntelliJ IDEA)环境中搭建一个基于Maven的Spring MVC项目,并结合Apache CXF实现Web服务的消费与提供。...

    源码-springboot+cxf实现webservice服务端

    ### 源码分析:Spring Boot + CXF 实现WebService服务端 #### 一、概述 随着企业级应用之间的交互需求日益增长,跨平台、跨语言的服务调用变得尤为重要。WebService作为一种成熟且广泛采用的技术标准,能够很好地...

    webservice(cxf)与spring整合源码+文档

    标题"webservice(cxf)与spring整合源码+文档"表明这是一个关于如何将CXF Web服务与Spring框架集成的学习资源。文档和源代码一起提供,使得学习者能够通过实践来理解这一过程。 描述中提到"webservice与spring整合...

    spring+cxf编写简单的webservice接口

    标题 "spring+cxf编写简单的webservice接口" 涉及的是使用Spring框架和Apache CXF库来创建Web服务接口的过程。这是一个在Java开发中常见的任务,特别是对于构建可互操作的、基于SOAP协议的Web服务。以下是这个主题的...

    cxf + spring 例子

    9. **源码分析**:深入理解CXF和Spring的源码有助于更好地定制和优化服务。例如,了解CXF如何解析WSDL,Spring如何管理服务实例,以及两者之间的协同工作原理。 10. **持续集成与自动化测试**:在实际项目中,使用...

    spring+srpingmvc+mybatis+cxf

    在SSM中,Spring作为基础框架,负责管理整个系统的组件,包括数据库操作、业务逻辑和服务接口等,通过Bean容器实现对象的创建、配置和管理。 2. **SpringMVC**:SpringMVC是Spring框架的一个模块,专为构建Web应用...

Global site tag (gtag.js) - Google Analytics