zoukankan      html  css  js  c++  java
  • WebService基础学习(三)—CXF

    一、什么是CXF?

         Apache CXF = Celtix + Xfire,开始叫 Apache CeltiXfire,后来更名为 Apache CXF 了,以下简称为 CXF。Apache CXF 是一个开源的 web Services 框架,CXF 帮助您构建和开发 web Services ,它支持多种协议,比如:SOAP1.1,1,2 XML/HTTPRESTful 或者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

    image

    SEI

    image

    SEI实现类

    image

    发布服务

    image

    查看服务

    image

    2.wsdl3java命令

    image

    image

    3.客户端开发

    (1)传统客户端开发

    image

    结果:

    日期: 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、打印结果。

    image

    结果:

    日期: 2016-07-27
    最高温度: 30
    最低温度: 20
    天气信息: 上海: 今天很热
    ============================================
    日期: 2016-07-28
    最高温度: 31
    最低温度: 21
    天气信息: 上海: 今天小雨
    ============================================
    日期: 2016-07-29
    最高温度: 32
    最低温度: 22
    天气信息: 上海: 今天大雨
    ============================================

  • 相关阅读:
    Visual Studio 2013各个版本密钥(亲测可用)
    Duilib bkimage 属性
    VC++ 文件夹的打开
    孙鑫- VC++在对话框程序中让对话框捕获WM_KEYDOWN消息
    OpenCV窗口置顶的方法
    OpenCV设置感兴趣区域(roi)
    Ubuntu 12,04安装ROS Hydro
    VC获取任务栏窗口及其子窗口句柄
    关于调用静态链接库LIB,提示重定义或库冲突的错误
    DuiLib如何禁用双击标题栏窗口最大化
  • 原文地址:https://www.cnblogs.com/yangang2013/p/5712299.html
Copyright © 2011-2022 走看看