3

我在互联网的某个地方读到 JAX-WS 是 SOAP 实现,而 JAX-RS 是 Rest 实现。这是真的?JAX-WS 和 JAX-RS 是实现还是规范?

提前致谢。

4

3 回答 3

4

它们是定义 API 的规范。

他们定义的 API(接口、类和异常)需要实现。

JAX-WS 的参考实现 (RI) 包含在 Java SE 中。JAX-WS RI 是作为 Metro 项目 ( http://metro.java.net/ ) 的一部分创建的。Metro 包括超出 JAX-WS RI 支持的增强功能和功能。在 SOAP 世界中,Web 服务堆栈可以支持一些可选功能,例如 WS-Security。Metro 支持这些,而 JAX-WS RI 不支持。

由于 JAX-WS 包含在 Java SE 中,是的,您可以在没有服务器的情况下制作 JAX-WS (SOAP) Web 服务。这是因为 Java SE 中包含一个非常基本的 HTTP 服务器。您使用Endpont类发布服务。这实际上比其他任何东西都更适合测试。JAX-WS 包含在 Java SE 中的真正原因是更容易成为 SOAP 服务客户端。要真正运行 JAX-WS Web 服务,您需要一个服务器,例如 GlassFish、JBoss 或 WebLogic。可以将 JAX-WS 实现添加到 Tomcat,但只有真正的 Java EE 应用程序服务器才包含开箱即用的完整实现。

JAX-RS 的参考实现 (RI) 被命名为 Jersey ( http://jersey.java.net/ )。JAX-RS 不包含在 Java SE 中。您必须下载一个实现。一旦你下载了它,你可以在没有服务器的情况下使用它,但同样,它实际上更适合在服务器中使用。下载 Jersey 的一个原因是让 Jersey Client API 来编写客户端(这不是当前 JAX-RS 规范的一部分)。与 JAX-WS 实现一样,您可以将 Jersey 添加到 Tomcat,或者完整的 Java EE 应用程序服务器将包含 JAX-RS 实现。

于 2013-03-25T23:16:50.173 回答
2

JAX-WS 和 JAX-RS 都是用于在 Java 中以各种方式进行通信的库 (API)。

正如您所提到的,JAX-WS 是一个可用于在 Java 中进行 SOAP 通信的库,而 JAX-RS 允许您在 Java 中进行 REST 通信。

于 2013-03-25T18:44:47.317 回答
1

JAX-WS 是JSR 224中引入的一组 Java 接口、类和注释:

JAX-RPC 2.0 规范用新特性扩展了现有的 JAX-RPC 1.0 规范,包括以下部分或全部:直接支持基于 JAXB 2.0 的数据绑定,支持最新的 W3C 和 WS-I 标准(例如 SOAP 1.2 , WSDL 1.2),Java<->WSDL 映射的标准化元数据,易于开发的特性,支持更容易的 Web 服务发展,改进的处理程序框架,支持异步 RPC 和非 HTTP 传输。

它是一个 API,需要运行时实现,例如由Apache Axis2提供。

JAX-RS 是JSR 311中引入的用于 RESTful 客户端/服务器通信的 API :

该 API 将使开发人员能够使用 Java 快速构建 Web 应用程序,这些应用程序是 Web 设计最好的部分的特征。该 JSR 将开发一个 API,用于在 Java 平台中提供 REST(具象状态传输 - 请参阅 Roy Fielding 的论文第 3.1 节)支持。轻量级的 RESTful 方法正在成为一种流行的替代基于 SOAP 的技术,用于在 Internet 上部署服务。目前,使用 Java 平台构建 RESTful Web 服务比构建基于 SOAP 的服务要复杂得多,并且需要使用低级 API,例如 Servlet 或动态 JAX-WS API。正确的实现需要开发人员具备高水平的 HTTP 知识。

同样,它需要一个实现,例如由Jersey提供。

于 2013-03-25T19:01:25.403 回答