97

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

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

5 回答 5

96

另一个重要的点

JAX-WS 表示 SOAP

JAX-RS 代表 REST

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

于 2013-10-12T03:31:37.717 回答
83

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 命令。

于 2013-05-14T14:31:46.033 回答
49

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)数据交换...

于 2015-02-18T06:38:02.923 回答
0

JAX-RS 可以像 JAX-WS 那样做异步请求吗?

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

JAX-RS 能否访问不在 Java 平台上运行的 Web 服务,反之亦然?

是的,它可以做

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

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

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

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

于 2018-06-20T05:29:52.543 回答
-1

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

于 2016-01-18T06:16:45.837 回答