1、CXF框架概念介绍

  Apache CXF 是一个开源的 WebService 框架,CXF可以用来构建和开发 WebService,这些服务可以支持多种协议,比如:SOAP、POST/HTTP、HTTP ,CXF 大大简化了WebService并且可以天然地和 Spring 进行无缝集成。CXF是 Celtrix (ESB框架)和 XFire(webserivice) 合并而成,核心是org.apache.cxf.Bus(总线),类似于Spring的 ApplicationContext,CXF默认是依赖于Spring的,另 CXF 发行包中的jar,如果全部放到lib中,需要 JDK1.6 及以上,否则会报JAX-WS版本不一致的问题。CXF 内置了Jetty服务器 ,它是servlet容器。

2、CXF框架特点

  A、与Spring、Servlet做了无缝对接,cxf框架里面集成了Servlet容器Jetty

B、支持注解的方式来发布webservice

C、能够显示一个webservice的服务列表

D、能够添加拦截器:输入拦截器、输出拦截器 :输入日志信息拦截器、输出日志拦截器、用户权限认证的拦截器

3、使用CXF框架发布一个WebService

  步骤一、

  使用CXF框架发布WebService需导入CXF框架的相关Jar包,此处引用的cxf版本为3.1.8,可在官方下载该版本后导入lib目录中的所有jar包

  步骤二、

       发布一个带接口的开发语言排行榜的WebService,编写接口和实现类如下

  

  

  步骤三、

  JaxWsServerFactoryBean是ServerFactoryBean的子类,也是功能扩展类。该类可用来发布WebService,此类必须要在被发布为服务的类上添加@WebService注解,如果不加注解,虽然不出错,但也不会对外暴露任何方法。使用此类生成的wsdl文件更加规范,更重要的是可以通过添加拦截器拦截请求,具体实现代码以及代码解释如下:

  

4、使用CXF框架和Spring框架集成发布一个WebService

  前面的服务发布包括创建服务类都是硬编码的方式,额是否可以使用配置的方式来发布服务类呢,答案是肯定的。这就要同Spring集成了, 由于CXF的项目已经集成了Spring(自带了Spring lib)所以CXF的服务都是在Spring的配置文件中完成的。

  步骤一、

  部署Spring环境,导入CXF和Spring的相关Jar包,此处导入的为3.1.8的cxf和4.2.3的spring版本

  步骤二、

  编写一个操作员工信息的接口和业务实现类,接口中包含添加和查询员工的方法

  包结构和类编写代码如下图:

  

  

   

    

  步骤三、

  配置web.xml文件,在web.xml中配置Spring的监听器,该监听器用来自动装配ApplicationContext的配置信息。还要配置CXF的Servlet信息,用来处理WebService的请求,具体配置信息如下,其中<url-pattern>/spring/*</url-pattern>为过滤路径,参见上文中的包结构,不同的包结构配置不同的过滤路径。

    

  步骤四、

  配置ApplicationContext.xml文件,首先按如下截图添加必要的路径

  

  接着配置业务实现类,即用来提供方法的EnployeeManagerImpl类。然后配置CXF,我们需要配置的东西有三样,分别是业务类接口,业务实现类和输入输出拦截器,完成之后便完成了CXF和Spring集成的WebService配置。

  

  步骤五、

  启动工程,当看到类似如下截图时,证明CXF和Spring集成的服务发布成功,并公布了服务中的方法,即上文中添加和查询员工的方法。

  

CXF框架介绍及Spring集成的更多相关文章

  1. 转载 WebService 的CXF框架 WS方式Spring开发

    WebService 的CXF框架 WS方式Spring开发   1.建项目,导包. 1 <project xmlns="http://maven.apache.org/POM/4.0 ...

  2. WebService 的CXF框架 WS方式Spring开发

    1.建项目,导包. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www ...

  3. Spring框架介绍和原理

    SpringMVC框架介绍 1) Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面. Spring 框架提供了构建 Web 应用程序的全功 ...

  4. [翻译]Spring框架参考文档(V4.3.3)-第二章Spring框架介绍 2.1 2.2 翻译--2.3待继续

    英文链接:http://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/overview.ht ...

  5. Spring集成MyBatis框架

    Java在写数据库查询时,我接触过四种方式: 1.纯Java代码,引用对应的数据库驱动包,自己写连接与释放逻辑(可以用连接池) 这种模式实际上性能是非常不错的,但是使用起来并不是非常方便:一是要手工为 ...

  6. spring集成cxf实现webservice接口功能

    由于cxf的web项目已经集成了Spring,所以cxf的服务类都是在spring的配置文件中完成的.以下是步骤:第一步:建立一个web项目.第二步:准备所有jar包.将cxf_home\lib项目下 ...

  7. Java主流Web Service框架介绍:CXF和Axis2

    CXF和Axis2是目前java平台上最主流的两个框架,虽然两个项目都隶属ASF,但却是基于不同思想和风格实现的,因此也各有所长.   CXF:http://cxf.apache.org/ 是由过去的 ...

  8. Spring集成Struts、Hibernate----三大框架SSH(Spring、Struts和hibernate)

    Spring 框架可以完成业务层的设计任务,Struts框架可以将表示层和业务层分离,而Hibernate框架可以提供灵活的持久层支持.下面介绍三大框架的集成环境: 1.配置Struts2. I.导入 ...

  9. Spring 框架介绍 [Spring 优点][Spring 应用领域][体系结构][目录结构][基础 jar 包]

    您的"关注"和"点赞",是信任,是认可,是支持,是动力...... 如意见相佐,可留言. 本人必将竭尽全力试图做到准确和全面,终其一生进行修改补充更新. 目录 ...

随机推荐

  1. datatable详解(angular-datatable)+后台分页(springmvc)

    datable常规配置,百度一大堆 function prepareDatatable(selector, options) { var defaultOptions = { autoWidth: t ...

  2. LAMP环境如何配置多个域名访问

    背景: 公司有多个项目想要挂载在一个服务器上,因此需要多个域名来访问不同的网站,其实就是一个阿里云服务器,一个ip对应于多个域名 lamp环境: centos版本:命令查看centos的版本号:rpm ...

  3. Java中关于枚举的7种用法

    1.定义常量: public enum Color { RED,ORANGE,YELLOW,GREEN,INDIGO,BLUE,PURPLE } 2.用于switch: enum Color { RE ...

  4. Spring 集合注入

    Spring注入是spring框架的核心思想之一.在实际的开发中,我们经常会遇见这样一些类的注入,这些类中包含一些集合作为类的属性,那么要怎样想类中的集合注入数据呢?本文通过一个简单的示例向大家介绍一 ...

  5. Kafka+SpringMVC+Maven应用示例

    本文借助主流SpringMVC框架向大家介绍如何在具体应用中简单快捷的使用kafka.kafka.maven以及SpringMVC在现在的企业级应用中都占据着非常重要的地位,所以本文将三者结合起来也可 ...

  6. rabbitMq延时消息分级别

    做支付平台的时候.需要实现接受上游支付消息,通知给下游渠道. 针对下游渠道:要实现 按通知次数 递进 延时通知 下游渠道的支付/签约/代扣的状态 可参考微信按照 15/15/30/180/1800/1 ...

  7. var ie = !-[1,], [^\x00-\xff]

    var ie = !-[1,]: 这句代码在IE9之前曾被称为世界上最短的IE判定代码.代码虽短但确包含了不少javascript基础知识在里面.在这个例子中代码执行时会先调用数组的toString( ...

  8. CodeForces 732B Cormen — The Best Friend Of a Man

    B. Cormen - The Best Friend Of a Man time limit per test 1 second memory limit per test 256 megabyte ...

  9. Web测试系列之测试工具

    一Web功能测试工具MAXQ MAXQ是开源的Web功能测试工具. MAXQ是开源的Web功能测试工具.他的特点:1)简单易学;2)是一个轻量级的Web功能测试工具;3)可以自动录制WebBrowse ...

  10. Servlet------>jsp自定义标签1(简单入门)

    自定义标签能做什么: 1.移除java代码 2.控制jsp页面某一部分是否执行 3.控制整个jsp是否执行 3.jsp内容重复输出 4.修改jsp内容输出 效果: 首先先写好实现这个标签的java类, ...