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


93

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

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

Answers:


78

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最终使REST与JSON成为更轻松的选择。

“ 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命令的一些文档。


感谢您提供的非常有用的答案。您是否知道其他任何事情可以将JAX-WS与JAX-RS区别开?
pmark019

92

另一个重点

JAX-WS代表SOAP

JAX-RS代表REST

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


29
实际上,JAX-WS代表RESTful和基于SOAP的Web服务。考虑它的一种方法是JAX-RS专攻RESTful,而JAX-WS允许您在两者之间进行选择时更加灵活,同时(在某些情况下)配置起来更加复杂。
MattC

谢谢您的简单解释。
PeerNet

2
JAX-WS既代表RESTful也代表基于SOAP的Web服务 ”-这是不正确的,请您提供一些参考资料以验证您的主张,JAX-WS可以通过HTTP传输SOAP,也可以通过HTTP传输XML,但这使JAX-WS RESTful。RESTful是完全不同的概念。
hagrawal

43

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

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

JAX-WS Web服务的客户端需要WSDL文件来生成可执行代码,客户端可以使用该可执行代码来调用Web服务。

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


简短的解释!优秀的。
Saurabh Rai

0

我一直在研究Apachi Axis1.1和Axis2.0以及JAX-WS,但是我建议您必须使用JAX-WS,因为它允许您以任何格式制作wsdl,我在Apache Axis2中以GetInquiry()的形式进行操作,但没有请允许我以大写字母开头“操作名称”,所以我觉得它不好,所以我建议您必须使用JAX-WS


0

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

是的,它肯定可以使用@Async

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

是的,可以

“ REST对于PDA和移动电话等受限配置的设备特别有用”是什么意思?

它主要用于公共api,取决于您要使用哪种方法。

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

它有自己的标准WADL(Web应用程序开发语言),它具有http请求,通过它您可以访问它们是由不同的思维方式共同创建的资源,如果是Jax-R,则必须考虑公开资源

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.