WebService作用:
实现多个系统之间的数据通信
技术点:
主要提供了2个技术点:
JAX_WS: 传输数据,就是XML格式,基于 SOAP 协议
JAX_RS(平时开发主流使用方式): 传输数据,传输 XML 格式或JSON 格式,基于 HTTP 协议
为什么使用RS而不使用WS:
主要原因就是RS是Restful风格的服务
RESTful的优点:
1.基于这种风格架构,软件编写可以更简洁
2.基于 HTTP 协议, 支持多种消息格式,比如 XML 、JSON
3.更易于实现缓存机制 (第一次访问资源 缓存,第二次访问资源,返回304 客户端调用本地)
4. 访问服务器统一资源,采用不同 HTTP 协议请求方式,服务器端可以得知进行 CRUD 哪个操作
@GET 查询 @PUT 修改@POST 增加 @DELETE 删除
怎么发布服务:
1.实体类user,写@xmlRootElement(name=”user”)
userService:@path(“/userService”,address=”/userService”)
findbyid:@path(“/user”)
@@GET(请求方式)
@produces({application/xml,application/json})//返回数据给客户端(accept)
@consumers({application/xml,application/json})//接收客户端传过来的参数(type)
接受参数:/user/{id}=====@pathParam(“id”)String id
Localhost:9999/project/userServcie/user?id=1 @queryParam(“id”)
访问路径怎么写:
根路径:localhost:9999/cxf_rs_spring
Web.xml:<url-pattern>/services/*</url-pattern>
Application-context.xml:address=”/userService”`
服务接口:@path(“/user”)
整合路径:
localhost:9999/cxf_rs_spring/services/userService/user
最终访问资源服务路径
服务器根目录地址 +web.xml 配置 + applicationContext.xml address 配置 + 类 @Path +
方法 @Path
总结二:
1. 两种:
Jax-ws:基于soap协议,只支持xml格式传输(在公司中很少用)
Jax-rs:基于http协议,支持xml/json格式传输(在公司中经常用)
2. jax-ws的使用:
1. 发布服务:
a) 创建实体类(不需要写注解,jdk1.6以后支持)
b) 接口(类:@WebService声明服务,方法体:@WebMethod声明方法)
c) 实现接口(endpointInterface:声明接口的全限定类名,servicename:无实际意义)
d) Application_context.xml中发布服务
<jaxws:server id="userService" address="/userService"
serviceClass="cn.itcast.cxf.service.IUserService">
<jaxws:serviceBean>
<bean class="cn.itcast.cxf.service.UserServiceImpl"/>
</jaxws:serviceBean>
</jaxws:server>
E)web.xml:servlet
2. 调用服务
a) 发布服务的生成一个jar包,导入调用该服务的工程中
b) 通过接口来进行调用
3. jax-rs:
1. 发布服务:
a) 实体类(@xmlRootElement:对象转换为xml格式)
b) Service接口:
请求方式:@post,@put,@get,@delete
路径:@path(url)
接收参数:@consumer(application/xml, application/json)
Localhost:9999/bos_management/userService/user/{id}:@pathParam(“id”)
Localhost:9999/bos_management/userService/user?id=1:@queryParam(i
返回值:@produces(application/xml, application/json)
c) id:唯一标识,address=”/userServcie”:方法该服务的路径
servicebeans:实现类的全限定类名
2. 调用服务:
WebClient:create(url),accept(接收服务端返回值:@produces),
Type(发送参数到服务端@consumer),get(类型.class)
4路径问题:localhost:9002/crm_management
1. web.xml:/services/*
2. application-context.xml:address=”/userService”
3. 接口中的:@path(“/user”)
4. 概述:
WebService是一套标准的协议,是为了统一这个发布调用服务的规范,两种格式一种是基于soap协议的,支持xml格式数据的传输,一种是基于http协议的,支持xml/json格式的传输。按照协议来发布、调用服务。