JAX-RS和JAX-WS有什么区别?

pma*_*019 91 rest soap web-services jax-rs jax-ws

在阅读了一些关于JAX-RS和JAX-WS的文章之后,我有几个问题需要确认?

  1. JAX-RS可以像JAX-WS一样执行异步请求吗?
  2. JAX-RS可以访问未在Java平台上运行的Web服务,反之亦然?
  3. 什么是"REST对于有限配置的设备,如PDA和手机特别有用"是什么意思?
  4. "JAX-RS不需要XML消息或WSDL服务API定义是什么意思?

小智 91

另一个重点

JAX-WS代表SOAP

JAX-RS代表REST

如何在JAX-RS和JAX-WS Web服务实现之间进行选择?

  • 实际上,JAX-WS代表基于RESTful和SOAP的Web服务.考虑它的一种方法是JAX-RS专注于RESTful,而JAX-WS允许您更灵活地在两者之间进行选择,同时(在某些情况下)配置更复杂. (27认同)
  • "*JAX-WS代表基于RESTful和SOAP的Web服务*" - 这不是真的,请你提供一些参考来验证你的声明,JAX-WS可以通过HTTP传输SOAP以及通过HTTP传输XML,但这使得JAX成为可能-WS RESTful.RESTful是完全不同的概念. (2认同)

Nic*_*oth 74

JAX-RS可以像JAX-WS一样执行异步请求吗?

1)我不知道JAX-RS API是否包含异步请求的特定机制,但是这个答案仍然可以根据您使用的客户端实现而改变.

JAX-RS可以访问未在Java平台上运行的Web服务,反之亦然?

2)我想不出它无法做到的任何理由.

什么是"REST对于有限配置的设备,如PDA和手机特别有用"是什么意思?

3)基于REST的体系结构通常使用轻量级数据格式(如JSON)来回传输数据.这与使用XML的JAX-WS形成对比.我没有看到XML本身比JSON(有些人可能会争辩)重得多,但是对于JAX-WS,使用了多少XML,最终使用JSON的REST变得更轻松.

"JAX-RS不需要XML消息或WSDL服务API定义是什么意思?

4)如3中所述,REST架构通常使用JSON来发送和接收数据.JAX-WS使用XML.并不是说JSON本身就比XML小得多.主要是JAX-WS规范在其通信方式上包含很多开销.

关于WSDL和API定义,REST将更频繁地使用URI结构和HTTP命令来定义API而不是消息类型,就像在JAX-WS中一样.这意味着您不需要发布WSDL文档,以便服务的其他用户可以知道如何与您的服务进行通信.使用REST,您仍需要向其他用户提供有关如何组织REST服务以及需要发送哪些数据和HTTP命令的文档.


Ale*_*kov 43

JAX-WS - 用于基于XML的Web服务的Java API - 以SOAP表示法(简单对象访问协议)开发Web服务的标准方法.

通过远程过程调用来执行Web服务的调用.对于客户端和Web Service之间的信息交换,使用的是SOAP协议.通过基于XML的SOAP消息执行客户端和服务器之间的消息交换.

JAX-WS Web服务的客户端需要一个WSDL文件来生成客户端可用于调用Web服务的可执行代码.

JAX-RS - 用于RESTful Web服务的Java API.RESTful Web服务表示为资源,可以通过统一资源标识符(URI)进行标识.在这种情况下,远程过程调用表示为HTTP请求,并且必要的数据作为查询的参数传递.Web服务RESTful - 更灵活,可以使用几种不同的MIME类型.通常用于XML数据交换或JSON(JavaScript Object Notation)数据交换......