快捷搜索:

Web服务技巧: JAX-RPC与JAX-WS比较

JAX-WS 2.0 是 JAX-RPC 1.1 的后续版本。本文将引出对这两个 Java™ Web办事编程模型进行对照的一系列文章。

小序

Web 办事已经呈现好久了。首先是 SOAP,但 SOAP 仅描述消息的环境,然后是 WSDL,WSDL 并不会奉告您若何应用 Java™ 编写 Web 办事。在这种环境下,JAX-RPC 1.0 应运而生。颠末数月应用之后,编写此规范的 Java Community Process (JCP) 职员熟识到必要对其进行一些调剂,调剂的结果便是 JAX-RPC 1.1。该规范应用大年夜约一年之后,JCP 职员盼望构建一个更好的版本:JAX-RPC 2.0。其主要目标是与行业偏向维持同等,但行业中不仅只应用 RPC Web 办事,还应用面向消息的 Web 办事。是以从名称中去掉落了“RPC”,取而代之的是“WS”(当然表示的是 Web 办事)。是以 JAX-RPC 1.1 的后续版本是 JAX-WS 2.0——Java API for XML-based Web services。

哪些内容维持不变?

在列出 JAX-RPC 1.1 和 JAX-WS 2.0 的差异前,我们应该首先评论争论一下二者的相同之处。

JAX-WS 仍旧支持 SOAP 1.1 over HTTP 1.1,是以互操作性将不会受到影响,仍旧可以在网上通报相同的消息。

JAX-WS 仍旧支持 WSDL 1.1,是以您所学到的有关该规范的常识仍旧有用。WSDL 2.0 规范已经靠近完成,但在 JAX-WS 2.0 相关事情停止时其事情仍在进行中。

差别何在?

SOAP 1.2

JAX-RPC 和 JAX-WS 都支持 SOAP 1.1。JAX-WS 还支持 SOAP 1.2。

XML/HTTP

WSDL 1.1 规范在 HTTP 绑定中定义,这意味着使用此规范可以在不应用 SOAP 的环境下经由过程 HTTP 发送 XML 消息。JAX-RPC 轻忽了 HTTP 绑定。而 JAX-WS 添加了对其的支持。

WS-I Basic Profile

JAX-RPC 支持 WS-I Basic Profile (BP) V1.0。JAX-WS 支持 BP 1.1。(WS-I 即 Web 办事互操作性组织。)

新 Java 功能

JAX-RPC 映射到 Java 1.4。JAX-WS 映射到 Java 5.0。JAX-WS 依附于 Java 5.0 中的很多新功能。

Java EE 5 是 J2EE 1.4 的后续版本,添加了对 JAX-WS 的支持,但仍旧支持 JAX-RPC,这可能会对 Web 办事新手造成肴杂。

数据映射模型

JAX-RPC 具有自己的映射模型,此模型大年夜约涵盖了所有模式类型中的 90%。它没有涵盖的部分映射到了 javax.xml.soap.SOAPElement。

JAX-WS 的数据映射模型是 JAXB。JAXB 可包管所有 XML 模式的映射。

接口映射模型

JAX-WS 的基础接口映射模型与 JAX-RPC 的差别并不大年夜,不过二者之间存在以下差异:

JAX-WS 的模型应用新的 Java 5.0 功能。

JAX-WS 的模型引入了异步功能。

动态编程模型

JAX-WS 的动态客户机模型与 JAX-RPC 的对应模型区别很大年夜。很多变动都是为了认可行业需求:

引入了面向消息的功能。

引入了动态异步功能。

JAX-WS 还添加了动态办事器模型,而 JAX-RPC 则没有此模型。

消息传输优化机制(Message Transmission Optimization Mechanism,MTOM)

JAX-WS 经由过程 JAXB 添加了对新附件规范 MTOM 的支持。Microsoft 从来没有给 SOAP 添加附件规范;但彷佛大年夜家都支持 MTOM,是以应该能够实现附件互操作性。

处置惩罚法度榜样模型

从 JAX-RPC 到 JAX-WS 的历程中,处置惩罚法度榜样模型发生了很大年夜的变更。

JAX-RPC 处置惩罚法度榜样依附于 SAAJ 1.2。JAX-WS 处置惩罚法度榜样依附于新的 SAAJ 1.3 规范。

SOAP 1.2

从编程模型的角度而言,SOAP 1.1 和 SOAP 1.2 之间并没有太多的差异。作为 Java 法度榜样员,您只会在应用场置惩罚法度榜样时碰到这些差异,我们将在今后的技术文章中对若何处置惩罚这种环境进行评论争论。SAAJ 1.3 已更新以支持 SOAP 1.2。

XML/HTTP

与 SOAP 1.2 的变动类似,从编程模型的角度而言,SOAP/HTTP 和 XML/HTTP 消息之间并没有太多的差异。作为 Java 法度榜样员,您只会在应用场置惩罚法度榜样时碰到这些差异,我们将在今后的技术文章中对若何处置惩罚这种环境进行评论争论。HTTP 绑定具有自己的处置惩罚法度榜样链和自己的一组消息高低文属性。

WS-I Basic Profiles

JAX-RPC 1.1 支持 WS-I Basic Profile (BP) 1.0。从那时起,WS-I 职员就完成了 BP 1.1(以及关联的 AP 1.0 和 SSBP 1.0)的开拓。这些新概要说明了一些小要点,更明确地定义了附件。JAX-WS 2.0 支持这些较新的概要。在大年夜部分环境下,其间的差异并不会影响 Java 编程模型。不过附件除外。WS-I 不仅处置惩罚了有关附件的一些问题,而且还定义了自己的 XML 附件类型:wsi:swaRef。

很多人都被这些概要搞糊涂了。为了弄清楚其间的问题,将必要懂得一下其相关历史。

WS-I 的第一个基础概要 (BP 1.0) 在说明各个规范方面做得异常不错,但它并不完美。尤其对 SOAP with Attachments (Sw/A) 的支持仍旧相称不明确。在第二个事情轮回中,WS-I 职员将附件从基础概要 (BP 1.1) 平分离出来,并对初版中一些没有评论争论的内容进行了弥补。当时他们还添加了两个互不包括的基础概要弥补文档:AP 1.0 和 SSBP 1.0。AP 1.0 是附件概要 (Attachment Profile),描述若何应用 Sw/A。SSBP 1.0 是简单 SOAP 绑定概要 (Simple SOAP Binding Profile),描述并不支持 Sw/A 的 Web 办事引擎(如 Microsoft 的 .NET)。WS-I 所供给的其他概要文件都因此这些基础概要文件为根基构建的。

Java 5

对 Java 说话进行了一系列变动。JAX-WS 依附于:Annotation、通用函数和履行法度榜样。我们将在后续的技术文章中详细评论争论 JAX-WS 若何依附于这个新功能。有关 Java 的这些新功能的信息,请拜见参考资猜中的 Java 5 链接。

总结

JAX-WS 2.0 是 JAX-RPC 1.1 的后续版本。此中有些内容维持不变,但大年夜部分编程模型都或多或少有些不合。本技术文章中先容的主题将在一系列技术文章中展开评论争论,这个系列的文章对 JAX-WS 和 JAX-RPC 间的差别进行了具体的评论争论,我们将在随后的数月中陆续宣布。大年夜致看来,可能会由于以下这些缘故原由而抉择从 JAX-RPC 迁移到 JAX-WS,或维持不变。

盼望继承应用 JAX-RPC 1.1 的缘故原由:

假如您盼望继承应用现有的器械,JAX-RPC 将在往后一段光阴内继承获得支持。

假如您不盼望进级到 Java 5。

假如您盼望发送采纳 SOAP 编码的消息或创建 RPC/encoded 样式的 WSDL。

进级到 JAX-WS 2.0 的缘故原由:

假如您盼望应用新的面向消息的 API。

假如您盼望应用 MTOM 发送附件数据。

假如您盼望经由过程 JAXB 更好地支持 XML 模式。

假如您盼望在 Web 办事客户机中采纳异步编程模型。

假如您必要应用能够处置惩罚 SOAP 1.2 消息的客户机或办事。

假如您盼望在 Web 办事中打消对 SOAP 的需求,而直接应用 XML/HTTP 绑定。

假如您爱好应用领先的尖端技巧。

查看原文

您可能还会对下面的文章感兴趣: