fateame 发表于 2017-3-3 07:00:12

WebService基础学习(三)—CXF

一、什么是CXF?
     Apache CXF = Celtix + Xfire,开始叫 Apache CeltiXfire,后来更名为 Apache CXF 了,以下简称为 CXF。Apache CXF 是一个开源的 web Services 框架,CXF 帮助您构建和开发 web Services ,它支持多种协议,比如:SOAP1.1,1,2 XML/HTTP、RESTful 或者CORBA。
  RESTful: 一种风格而不是一个协议。它理念是网络上的所有事物都被抽象为资源,每个资源对应一个唯一的资源标识符。
     Cxf是基于SOA总线结构,依靠spring完成模块的集成,实现SOA方式。
     灵活的部署: 可以运行在Tomcat,Jboss,Jetty(内置),weblogic上面。
   环境变量的配置  CXF_HOME: 安装目录。
  Path: bin目录。
二、使用CXF发布jax-ws规范的WebService
1.服务端
  第一步: 创建一个java工程
  第二步: 导入cxf的jar包。138个
  第三步: 编写SEI接口。需要在SEI接口上添加@Webservice注解。
  第四步: 编写SEI实现类。不需要加注解。
  第五步: 发布服务
            1、创建一个JaxWsServerFactoryBean对象
            2、设置SEI接口setServiceClass
            3、设置SEI实现类对象。setServiceBean
            4、设置服务发布地址。setAddress
            5、发布服务。Create
  POJO

  SEI

  SEI实现类

  发布服务

  查看服务

2.wsdl3java命令


3.客户端开发
  (1)传统客户端开发

  结果:
  日期: 2016-07-27      
最高温度: 30         
最低温度: 20         
天气信息: 北京: 今天很热         
============================================         
日期: 2016-07-28         
最高温度: 31         
最低温度: 21         
天气信息: 北京: 今天小雨         
============================================         
日期: 2016-07-29         
最高温度: 32         
最低温度: 22         
天气信息: 北京: 今天大雨         
============================================
  (2)使用CXF实现客户端
  步骤:
  1、导入cxf的jar包
  2、创建一个JaxWsProxyFactoryBean对象
  3、设置一个PortType的class。
  4、设置一个address。服务端的url包括ip及端口。
  5、调用create方法生成PortType代理对象。
  6、调用服务端方法
  7、打印结果。

  结果:
  日期: 2016-07-27      
最高温度: 30      
最低温度: 20      
天气信息: 上海: 今天很热      
============================================      
日期: 2016-07-28      
最高温度: 31      
最低温度: 21      
天气信息: 上海: 今天小雨      
============================================      
日期: 2016-07-29      
最高温度: 32      
最低温度: 22      
天气信息: 上海: 今天大雨      
============================================
页: [1]
查看完整版本: WebService基础学习(三)—CXF