【问题标题】:What is the difference between JAX-RS and JAX-WS?JAX-RS 和 JAX-WS 有什么区别?
【发布时间】:2013-05-08 12:54:44
【问题描述】:

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

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

【问题讨论】:

    标签: web-services rest soap jax-ws jax-rs


    【解决方案1】:

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

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

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

    是的,可以的

    “REST 对于 PDA 和手机等配置有限的设备特别有用”是什么意思?

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 感谢您提供的非常有帮助的答案。您知道还有其他可以区分 JAX-WS 和 JAX-RS 的东西吗?
      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        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 Services RESTful - 更灵活,可以使用几种不同的MIME- 类型。通常用于 XML 数据交换或JSON (JavaScript Object Notation) 数据交换...

        【讨论】:

        • 简明扼要的解释!!很棒。
        【解决方案5】:

        另一个重点

        JAX-WS 代表 SOAP

        JAX-RS 代表 REST

        How to choose between JAX-RS and JAX-WS web services implementation?

        【讨论】:

        • 实际上,JAX-WS 代表 RESTful 和基于 SOAP 的 Web 服务。一种思考方式是 JAX-RS 专注于 RESTful,而 JAX-WS 允许您更灵活地在两者之间进行选择,同时(在某些情况下)配置更复杂。
        • 感谢您的简单解释。
        • "JAX-WS 代表 RESTful 和基于 SOAP 的 Web 服务" - 这不是真的,您能否提供一些参考来验证您的声明,JAX-WS 可以传输SOAP over HTTP 和 XML over HTTP,但这使得 JAX-WS 成为 RESTful。 RESTful 是完全不同的概念。
        猜你喜欢
        • 1970-01-01
        • 2011-06-29
        • 2011-12-16
        • 1970-01-01
        • 2013-07-27
        • 1970-01-01
        • 2011-05-20
        • 2013-03-15
        • 2012-03-30
        相关资源
        最近更新 更多