JAX-RPC 与 JAX-WS 的比较

JAX-WS 2.0 是 JAX-RPC 1.1 的后续版本。


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 规范。


大致看来,可能会因为以下这些原因而决定从 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 绑定。


如果您喜欢使用领先的尖端技术。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值