主要讲解点:

  1. WebServiceCXF介绍(了解)

  2. JAX-WS服务独立发布及测试、JAX-WS整合spring开发及测试(了解)

  3. JAX-RS服务独立发布及测试、JAX-RS整合spring开发及测试、Restful架构风格(重点)

  4. 定区关联客户功能的实现(重点)

一、WebServiceCXF简介(了解)

  1. 什么是WebService

    WebService是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。

很多个系统,进行分布的部署,分布的系统数据通信,解决技术就是WebService。

  1. 什么是CXF

    Apache CXF = Celtix + XFire,开始叫 Apache CeltiXfire,后来更名为 Apache CXF 了,以下简称为 CXF。CXF 继承了 Celtix 和 XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且提供了多种 Binding 、DataBinding、Transport 以及各种 Format 的支持,并且可以根据实际项目的需要,采用代码优先(Code First)或者 WSDL 优先(WSDL First)来轻松地实现 Web Services 的发布和使用。Apache CXF已经是一个正式的Apache顶级项目。

    官网:http://cxf.apache.org/ 最新版本:3.1.11

  2. 为什么用WebServiceCXF

CXF是目前最主流WebService开发框架,由Apache提供

CXF WebService开发,主要分为两种服务提供方式WS、RS

4、两种传输数据的方式

1)JAX-WS 传输数据,就是XML格式,基于SOAP协议(Simple Object Access protocol,简单对象访问协议)(了解)

2)JAX-RS传输数据,传输XML格式或者JSON格式,基于HTTP协议(重点)

二、JAX-WS服务独立发布(能实现)

1、建立maven java项目

2、在项目中导入CXF jar包支持

要提供jaxws服务,引入jaxws的jar包,要提供jaxrs服务,引入jaxrs的jar包

导入maven坐标

查看完整日志

3、编写服务端程序

1)编写实体类

2)编写服务

@WebService用在类上面,标记类是WebService服务提供对象

@WebMethod使用方法上面,标记方法是WebService服务提供方法

@WebService注解配置endPointInterface接口服务完整类名,servicename服务名称

3)将UserService的服务方法,发布到网络上,给其它系统调用

4)访问地址:http://localhost:9999/userService?wsdl

WSDL:(Web Services Description Language) WSDL 文件是一个 XML 文档,用于说明一组 SOAP 消息以及如何交换这些消息。大多数情况下由软件自动生成和使用。

4、编写客户端操作

三、JAX-WS原理分析和日志消息显示(了解,能说)

添加日志监控

四、JAX-WS整合spring服务器端开发(能实现)

1、建立maven web项目,基于tomcat发布服务

基于maven 导入坐标 CXF开发

Spring 开发

基于Spring测试开发

配置web.xml

CXF基于web访问

2、导入实体类、Service

3、配置spring cxf服务发布

1)引入名称空间

xmlns:jaxws=http://cxf.apache.org/jaxws

xsi:schemaLocation="http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"

2)配置服务

3)配置启动服务端口

4)访问地址:http://localhost:9998/cxf_ws_spring/services/userService?wsdl

五、JAX-WS整合spring客户端代码测试(能实现)

1、applicationContext-test.xml配置

2、测试用例编写

  1. Restful架构风格简介(重要,能说)

  1. 什么是Restful风格

    Representational State Transfer

    一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

    在服务器端,应用程序状态和功能可以分为各种资源。资源是一个有趣的概念实体,它向客户端公开。资源的例子有:应用程序对象、数据库记录、算法等等。每个资源都使用 URI (Universal Resource Identifier) 得到一个唯一的地址。所有资源都共享统一的接口,以便在客户端和服务器之间传输状态。使用的是标准的 HTTP 方法,比如 GET、PUT、POST 和 DELETE。

  2. Restful风格好处

    1. 基于这种风格架构,软件编写可以更简洁

    2. 基于HTTP协议,支持多种消息格式,比如XML、JSON

    3)更容易实现缓存机制(第一次访问资源缓存到本地,第二次访问资源,返回304,客户端调用本地)200、 500 、404、304

3、样例演示

POST请求方式访问        保存操作(增,英文:Create)

DELETE请求方式访问        删除操作(删,英文:Delete)

PUT 请求方式访问            修改操作(改,英文:Update)

GET请求方式访问            查询操作(查,英文:Retrieve)

http://localhost:9997/userService/user        查询所有用户信息

http://localhost:9997/userService/user/1     查询用户编号为1的用户信息

小结:访问服务器统一资源,采用不同HTTP协议请求方式,服务器端可以得知进行CRUD哪个操作

  1. JAX-RS服务独立发布(能实现)

  1. 建立maven项目

基于maven导入坐标

2、导入实体类

@XmlRootElement指定序列化(转换XML)对象名字

3、编写业务类

注解说明;

1)访问资源路径的注解:@Path

如果访问saveUser方法 /userService/user

2)请求参数和返回值的注解:@Produces生成(方法返回值)@Consumes消费(方法        参数)

@Consumes 指定能够处理客户端传递过来数据格式

@Produces 指定能够生成哪种格式数据返回给客户端

3)请求方式的注解:@GET查询 @PUT 修改 @POST 增加 @DELETE 删除

4、发布服务

八、JAX-RS客户端WebClient的使用(会用)

1、客户端程序的编写

两种方式:

1)使用http client工具,需要自己对HTTP协议内容进行定制和解析

2)WebClient工具类使用(CXF自带)

九、JAX-RS服务通信添加json转换支持(会用)

解决:pom引入json转换器

十、JAX-RS整合spring服务器端开发(能实现)

1、建立maven项目

1)导入maven坐标

2)web.xml

2、导入实体类和Service

  1. 在spring配置发布rs服务

    xmlns:jaxrs=http://cxf.apache.org/jaxrs

    xsi:schemaLocation="http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd"

最终访问资源服务路径:

服务器根目录地址+web.xml配置+applicationContext.xml address配置

+类@Path+方法@Path

1)applicationContext.xml配置

2)配置服务启动端口

4、编写客户端代码 类似独立服务客户端代码

采用WebClient工具实现

如何选择SOAP Webservice和Restful Webservice的使用,首先需要理解就是SOAP偏向于面向活动,有严格的规范和标准,包括安全,事务等各个方面的内容,同时SOAP强调操作方法和操作对象的分离,有WSDL文件规范和XSD文件分别对其定义。而REST强调面向资源,只要我们要操作的对象可以抽象为资源即可以使用REST架构风格。

十一、定区关联客户CRM系统服务接口编写(重要)

此项目实现是右侧显示与当前定区关联的客户列表,左侧显示还没有与定区关联的列表

正常操作应该反过来设置

1、在crm_management项目中,要引入WebService CXF jar包

2、编写webservice服务接口

@Queryparam中,指定的是URL中的参数是以键值对的形式出现的,而在程序中@QueryParam("from") int from则读出URL中from的值,如http://xxxx.xxx/xxx?from=10

而@pathparem中,URL中只出现参数的值,不出现键值对,比如: "/users/2011/06/30"

企业实际开发中 双方先定接口,然后连调测试

十二、定区关联客户CRM业务接口实现(重要)

3、提供服务接口实现,连接数据库完成功能

CRM系统已经导入Spring Data JPA

4、编写DAO

十三、定区关联客户CRM系统服务发布(重要)

发布WebService服务

1、配置web.xml

2、applicationContext.xml

3、bug分析及解决

1)项目中原来Customer类的sex类型int,改为Integer更新表结构,加入数据为null

crm_management引入crm_domain来自本地maven仓库(修改类型后,没有重新install)

2)原因:实体类没有添加@XmlRootElement注解

十四、定区关联客户窗口弹出发起Ajax请求数据(能实现)

1、判断用户是否只选择了一个定区,如果是,弹出关联客户到定区的窗口

  1. 弹出关联客户窗口,有遮罩窗口

3、在窗口弹出时,向服务器发送两个请求,获取已关联客户和未关联客户列表

十五、定区关联客户窗口数据列表WebService远程加载(重要)

4、编写FixedAreaAction添加方法调用CRM WebService查询数据

spring整合webservice相关推荐

  1. 【webservice】spring整合webservice RS风格

    [webservice]spring整合webservice RS风格 UserService package cn.zxl.cxf.service;import java.util.List;imp ...

  2. Spring整合CXF,发布RSETful 风格WebService

    这篇文章是承接之前CXF整合Spring的这个项目示例的延伸,所以有很大一部分都是一样的.关于发布CXF WebServer和Spring整合CXF这里就不再多加赘述了.如果你对Spring整合CXF ...

  3. CXF整合Spring开发WebService

    刚开始学webservice时就听说了cxf,一直没有尝试过,这两天试了一下,还不错,总结如下: 要使用cxf当然是要先去apache下载cxf,下载完成之后,先要配置环境变量,有以下三步: 1.打开 ...

  4. Spring项目整合WebService服务遇到问题记录

    项目是用SSM+Maven构建,在整合WebService时,将遇到问题解决方式记录如下: 基于WS风格使用方式 1.所需要类库:     <dependency>         < ...

  5. Spring整合CXF webservice restful 实例

    webservice restful接口跟soap协议的接口实现大同小异,只是在提供服务的类/接口的注解上存在差异,具体看下面的代码,然后自己对比下就可以了. 用到的基础类 User.java [源码 ...

  6. java cxf spring_CXF整合Spring开发WebService

    刚开始学webservice时就听说了cxf,一直没有尝试过,这两天试了一下,还不错,总结如下: 要使用cxf当然是要先去apache下载cxf,下载完成之后,先要配置环境变量,有以下三步: 1.打开 ...

  7. 一个CXF集成SPRING的WEBSERVICE完整实例

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 1 首先 ...

  8. spring整合CXF

    CXF也就是用于发布接口的webservice的框架. 发布服务:使用spring和cxf整合的标签<jaxws:server 客户端发布服务:使用springcxf整合的标签<jaxws ...

  9. SpringBoot整合WebService(服务端+客户端)

    SpringBoot整合WebService(服务端+客户端) 文章目录 SpringBoot整合WebService(服务端+客户端) 一.服务端 1.项目结构 2.创建好SpringBoot项目后 ...

最新文章

  1. 调用父级方法_通信:找到任意组件实例的findComponents系列方法,5个终极方案
  2. sap Bydesign 中解决添加元素或者字段时,多语言翻译的问题
  3. Android—将Bitmap图片保存到SD卡目录下或者指定目录
  4. Android-04:线程的使用
  5. 从一道面试题说起—js隐式转换踩坑合集
  6. c++和java哪个难_2020 年 11 月编程语言排行榜,Python 超越 Java ?
  7. L2-014 列车调度(队列模拟:set)
  8. YBTOJ洛谷P4551:最长异或路径(trie树)
  9. Java 多态 ——一个案例 彻底搞懂它
  10. python二级考试报名2020浙江_关于2020年下半年高校计算机等级考试报名的通知
  11. U-Boot提供的指令
  12. 华为员工:工作3年,年薪50万,为什么要辞职?出租车司机觉得我在吸毒!
  13. 搭建Cocos2d-js开发环境(Window)
  14. web前端性能优化的方法
  15. php 将日期转换时间戳,php怎么将日期转换为时间戳?
  16. opencl icd---OpenCL Installable Client Driver (ICD) Loader
  17. Win7平台上通过QQ查询对方IP地址
  18. 金蝶软件各版本安装包下载地址(即时更新)
  19. Linux环境下部署Dubbo 监控中心
  20. weblogic 配置WtC The following failures occurred: -- [WTC:180137]The NWAddr attribute on the WTCServer

热门文章

  1. 【Python基础】超级详解系列-Python列表全面解析
  2. 【学术相关】科研行业有哪些不为大众所知的内幕?
  3. 【机器学习】三层神经网络
  4. ICDM 2020 TOP3方案
  5. 技术实践 | 网易云信在融合通信场景下的探索和实践之 RTMPGateway 服务架构
  6. MCtalk对话学霸君:在线教育“1对多小班化”是个伪命题
  7. 【iOS篇】从容面对App崩溃
  8. 为终端服务连接配置网络级身份验证
  9. 转 当当网资深DBA:DB运维四大现代化的实现
  10. Linux驱动 - 多线程之 完成量