【webservice】Java JAX-WS和JAX-RS webservice

本文详细介绍了Web服务的工作原理,涉及SOAP和REST的区别,以及Java中实现Web服务的JAX-WS和JAX-RS规范。讲解了JAX-WS作为SOAP服务API,而JAX-RS则应用于RESTful HTTP服务。通过实例展示了调用Web服务的不同方法,包括SOAP与REST协议的使用,强调了SOAP协议版本在调用中的关键作用。
摘要由CSDN通过智能技术生成

一、webservice请求的工作原理:

客户端——> 阅读WSDL文档 (根据文档生成SOAP请求) ——>发送到Web服务器——>交给WebService请求处理器——>处理SOAP请求——> 调用WebService——>生成SOAP应答 ——> Web服务器通过http的方式交给客户端

详细描述如下:
无论使用什么工具/语言编写的webservice服务端,都可以使用soap协议,通过HTTP来调用,调用原理相同:创建webservice服务端,将其暴露给web客户端。客户端阅读其wsdl文档,根据wsdl描述文档生成相应的soap请求信息。客户生成的soap请求信息会被嵌入到一个http请求并发送到部署webservice服务的web服务器(如IIS)。web服务器再将请求转发给webservice请求处理器。webservice请求处理器用于解析收到的soap请求,调用webservice服务,获取soap应答。web服务器得到soap应答后,再通过http应答的方式返回给客户端。

WSDL、SOAP和UDDI一起工作,支持webservice和Internet上的其它服务、应用程序和设备交互作用。UDDI提供了发布和定位web服务的功能,WSDL描述了web服务,SOAP服务提供了传输协议。

补充两个概念:

1、soap:简单地说是一个通过http来传输xml数据的协议。

2、WSDL:web服务的接口定义语言,使用xml来描述web服务的标准。描述了如何访问具体的接口,包括三个属性:
1)如何访问服务:和服务交互的数据格式以及必要的协议;
2)服务在哪里:协议的相关地址,比如url等信息;
3)服务具有哪些功能:webservice中提供了哪些可以调用的方法;

二、Java中的三种webservice规范

java中共有三种webservice规范:JAXM&SAAJJAX-WS(JAX-RPC)JAX-RS

JAX-WS规范是一组xml web service的java API。

规范是一组API?

规范只是集成在java平台里边的API,这个API是用来实现不同风格的JWS的。人们把这一套API叫做web服务规范。因为它们的设计目标不一样,JAX-WS是为实现基于soap协议的web service提供的API,soap协议比较强大。而JAX-RS是为基于REST设计风格的web service提供的API。有了API,然后我们再结合一些框架就能够很轻松的实现web service。

支持的框架:
支持JAX-WS服务规范的框架有:
CXF,Axis,Xfire,结合java语言均可实现JAX-WS。

支持JAX-RS服务规范的框架有:
CXF:Xfire和Celtix的合并
Jersey:sun公司的JAX-RS参考实现
RESTEasy:JBoss的JAX-RS项目
Restlet:也许是最早的REST框架了,在JAX-ES之前就有了

三、重点内容两种不同风格的SOA(面向服务的体系结构)架构:JAX-WS && JAX-RS

补充;

REST服务:
URL定位资源,用HTTP动词(GET、POST、DELETE、DELETE )描述操作。简单来讲,就是可以用httprequest调用某个function。比如在浏览器里输入 www.chx.site/api/guesswhoisawesome,就会调用后台的某个function等到一个response(可以是json)。REST服务采用HTTP做传输协议,REST对于HTTP的利用分为以下两种:资源定位和资源操作。

资源定位:
REST要求对资源定位更加准确,如下:
非rest方式:http://ip:port/queryUser.action?userType=student&id=001
Rest方式:http://ip:port/user/student/001
REST方式表示互联网上的资源更加准确,但是也有缺点,可能目录的层级较多不容易理解。

资源操作:
利用HTTP的GET、POST、PUT、DELETE四种操作来表示数据库操作的SELETE、UPDATE、INSERT、DELETE操作。

比如:
查询学生方法:
设置HTTP的请求方法为GET,url如下:
http://ip:port/user/student/001
添加学生方法:
设置http的请求方法为PUT,url如下:
http://ip:port/user/student/001/张三/…

REST常用与资源定位,资源操作方式较少使用。REST是一种软件架构理念,现在被移植到web服务上,那么再开发web服务的时候,偏于面向资源的服务使用REST。REST简单易用,效率高,SOAP成熟度较高,安全性较好。

注意:REST不是webservice,JAX-RS只是将REST设计风格应用到web服务开发上。REST风格的webservice不采用soap传输,直接采用http传输,可以返回xml或json。

jaxb:java xml binding,是 JAX-WS和JAX-RS底层使用的对象与XML之间转换的工具。

JAX-WS:java TM API for XML-Based WedService,是针对webservices。

JAX-RS:java TM API for RESTful webservices&

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值