A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 谷粒姐姐 于 2018-3-15 11:55 编辑

4.        WebServiceCXF使用入门
4.1 . 什么是 Service


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



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


官网: http://cxf.apache.org/        最新版本 3.1.7
CXF WebService 开发,主要分为两种服务提供方式 WS 、RS


JAX-WS 传输数据,就是 XML 格式,基于 SOAP 协议
JAX-RS 传输数据,传输 XML 格式或者 JSON 格式,基于 HTTP 协议

4.3 . JAX-WS独立服务使用
1、 建立 maven java 项目

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

要提供 jaxws 服务,引入 jaxws 的 jar 包 , 要提供 jaxrs 服务,引入 jaxrs 的 jar 包使用 maven 坐标
查看完整日志

file:///C:\Users\user\AppData\Local\Temp\ksohtml\wpsDBE1.tmp.png
别忘记 log4j.properties

3、 编写服务端程序编写实体类


编写服务
@WebService 使用类上面,标记类是 WebService 服务提供对象
@WebMethod 使用方法上面,标记方法 是 WebService 服务提供方法

@WebService 注解设置 endPointInterface 接口服务完整类名, servicename 服务名称
想将 UserService 的服务方法,发布到网络上,给其它系统调用


网址: http://localhost:9999/userService?wsdl

4、 编写客户端操作


4.4 . JAX-WS原理分析讲解


添加日志监控
4.5 . JAX-WSSpring整合开发
1、 建立 maven web 项目 ,基于 tomcat 发布服务


基于 maven 导入坐标
CXF 开发


Spring 开发

基于 spring 测试开发

配置 web.xml
Spring 配置文件加载、环境初始化


CXF 基于 web 访问 ****

2、 导入实体类、Service
3、 配置 spring cxf 服务发布引入名称空间
配置服务


配置启动服务端口



访问 :http://localhost:9998/cxf_ws_spring/services/userService?wsdl
4、 整合 spring 测试,编写客户端


测试用例编写
4.6 . JAX-RS独立服务使用



[/table]什么是 Restful 风格的服务 ?
Restful 风格好处 ?

基于这种风格架构,软件编写可以更简洁
基于 HTTP 协议, 支持多种消息格式,比如 XML 、JSON
更易于实现缓存机制(第一次访问资源 缓存,第二次访问资源,返回 304 客户端调用本地)


http://localhost:9997/userService/user
POST 请求方式访问 保存操作
PUT 请求方式访问 修改操作
GET 请求方式访问 查询操作
DELETE 请求方式访问 删除操作
http://localhost:9997/userService/user 查询所有用户信息
http://localhost:9997/userService/user/1        查询用户编号为 1 的用户信息
访问服务器统一资源,采用不同 HTTP 协议请求方式,服务器端可以得知进行 CRUD 哪个操作!
编写 JAX-RS 独立服务应用
1、 建立 maven java 项目



基于 maven 导入坐标


2、 导入实体类


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

3、 编写业务类


第一种 @Path 服务访问资源路径
如果访问 saveUser 方法        /userService/user
第二种 @Produces 生成(方法返回值)        @Consumes 消费 (方法参数)
@Consumes 指定能够处理客户端传递过来数据格式
@Produces 指定能否生成哪种格式数据返回给客户端
第三种 @GET 查询 @PUT 修改 @POST 增加 @DELETE 删除

如果实现某条数据单独查询,使用 url 参数 !
4、 发布服务


5、 客户端程序的编写有两种做法
1) 使用 http client 工具 ,需要自己对 HTTP 协议内容进行定制和解析
2)

WebClient 工具类使用 (CXF 自带)


4.7 . JAX-RS如何传输 JSON格式的数据 ?
如果指定客户端要获取 json 内容
错误:Caused by: javax.ws.rs.ProcessingException: No message body writer has been found
for class cn.itcast.cxf.domain.User, ContentType: application/json
解决: 在项目引入 json 转换器

4.8 . JAX-RSSpring整合开发

1、 建立 maven web 项目


导入 maven 坐标


导入 web.xml


2、 导入实体类和 Service



3、 在 spring 配置发布 rs 服务
引入名称空间 xmlns:jaxrs="http://cxf.apache.org/jaxrs"
最终访问资源服务路径
服务器根目录地址 + web.xml 配置 + applicationContext.xml address 配置 + 类 @Path +
方法 @Path
applicationContext.xml 配置重复


配置服务启动端口

4、 编写客户端代码 类似独立服务客户端代码
WebClient 工具实现
bos项目笔记之chapter04_系统分析、环境搭建(1)

1 个回复

正序浏览
您需要登录后才可以回帖 登录 | 加入黑马