`

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 绑定。



如果您喜欢使用领先的尖端技术。

分享到:
评论

相关推荐

    用JAX-RPC构建Web服务.docx

    需要注意的是,虽然JAX-RPC在早期的Web服务开发中发挥了重要作用,但它已经被更现代的规范如JAX-WS所取代,JAX-WS提供了更强大和灵活的Web服务开发能力,支持注解和更丰富的数据绑定。然而,理解JAX-RPC的基本原理...

    JAX-WS2.0 API

    JAX-WS 2.0是JAX-WS的第二个主要版本,它在JAX-RPC(Java API for XML-based RPC)的基础上进行了改进,引入了许多新特性以提升开发者的体验和效率。 **JAX-WS 2.0 的核心概念:** 1. **服务端点接口(SEI, ...

    J2EE Web Services: XML SOAP WSDL UDDI WS-I JAX-RPC JAXR SAAJ JAXP

    本篇将深入探讨与J2EE Web服务相关的九大关键技术:XML、SOAP、WSDL、UDDI、WS-I、JAX-RPC、JAXR、SAAJ以及JAXP。 1. **XML(eXtensible Markup Language)**:XML是一种标记语言,用于结构化数据的交换。在Web服务...

    jax-ws WebService客户端与服务端工程.rar

    - JAX-WS支持安全特性,如WS-Security(Web Services Security),可以添加数字签名和加密以确保数据的安全传输。 7. **性能优化**: - 缓存WSDL:客户端可以缓存WSDL,减少网络请求。 - MTOM(Message ...

    MyEclipse6_5上基于JAX-WS开发Webservice(中文示例)

    JAX-WS(Java API for XML Web Services)是Java平台上用于构建和消费Web服务的标准API,它取代了早期的JAX-RPC。本篇将详细介绍如何在MyEclipse6_5集成开发环境中使用JAX-WS来开发Web服务。 首先,让我们了解...

    jax-rpc soap头扩展 客户端,服务端例子

    jax-rpc soap头扩展 客户端,服务端例子 ws-tipjax2SOAPHandler.ear,ws-tip-extend.zip 官方也有下载的

    JAX-WS Five Minute Tutorial 源码

    **四、JAX-WS与JAX-RPC比较** 相比早期的JAX-RPC,JAX-WS提供了更丰富的功能,如: - 更强的类型安全性,通过WSDL生成的客户端代码能更好地捕获类型错误。 - 更好的集成性,与Java EE平台无缝集成。 - 支持WS-*...

    使用JAX-WS(JWS)发布WebService

    使用JAX-WS(JWS)发布WebService 使用myeclipse开发java的webservice的两种方式 方式一: (此方式只能作为调试,有以下bug:jdk1.6u17?以下编译器不支持以Endpoint.publish方式发布document方式的soap,必须在...

    MyEclipse6.5上基于JAX-WS开发Webservice

    JAX-WS 是一种用于构建和部署 Web 服务的 Java API,它在 Java EE 5 及以上版本中被引入,用于替代早期的 JAX-RPC。JAX-WS 提供了更加简洁和面向对象的 API,使得开发者可以更容易地创建符合 W3C 标准的 SOAP...

    myeclipse6.5上基于JAX-WS开发Webservice(中文示例).doc

    JAX-WS 提供了更加简化的方式来构建和部署 Web 服务,相比早期的 JAX-RPC(Java API for XML Remote Procedure Calls),它提供了更高级别的抽象,使得开发者可以更加专注于业务逻辑,而不需要过多关注底层通信细节...

    java webservice 详细开发示例介绍

    早期的基于 SOAP 的 JAVA 的 Web 服务规范 JAX-RPC(Java API For ...WS-MetaData(JSR 181)是 JAX-WS 的依赖规范,其 API位于 javax.jws.*包,使用注解配 置公开的Web服务的相关信息和配置 SOAP 消息的相关信息。

    JavaWeb服务:Axis2中的JAXB和JAX-WS

    本文内容包括:Axis2中的JAXB在Axis2中使用JAX-WS结束语下载参考资料ApacheAxis2支持各种数据绑定技术,包括官方Java:trade_mark:标准JAXB2.x。Axis2还支持针对Web服务配置的Java标准JAX-WS2.x,作为其自有的配置...

    Jax-webservice.rar

    JAX-WS与早期的JAX-RPC相比,提供了更现代、更灵活的架构,并且更加符合WS-I(Web Services Interoperability Organization)的标准,从而增强了不同平台间的互操作性。 在提供的"Jax-webservice.rar"压缩包中,...

    javaweb技术开发简介

    WS-I 是 Web 服务互操作性组织的简称,提供了 Web 服务安全性规范和配置文件。Java 6 中的 Web 服务实现不支持 WS-I 配置文件,如 web 服务安全性规范。 5. JAXP 和 XML 处理 JAXP 是 Java API for XML Processing...

    JAVA6开发WebService JWS示例

    JAX-WS 是 JAVA 中的一种 WebService 规范,早期的 JAVA Web 服务规范 JAX-RPC(Java API For XML-Remote Procedure Call)目前已经被 JAX-WS 规范取代,JAX-WS 是 JAX-RPC 的演进版本,但 JAX-WS 并不完全向后兼容 ...

    Java EE 6 规范

    •JAX-RPC 1.1 •JAX-WS 2.2 •JAX-RS 1.1 •JAXB 2.2 •JAXR 1.0 •Java EE Management 1.1 •Java EE Deployment 1.2 •JACC 1.4 •JASPIC 1.0 •JSP Debugging 1.0 •JSTL 1.2 •Web Services Metadata 2.1 •JSF...

    webservice-xfire相关(xfire&wsdl4j;&jaxrpc;&jdom;)

    JAX-RPC简化了Web服务的编程模型,但已经被JAX-WS取代,后者提供了更现代、更灵活的API。 4. **JDOM**: Java Document Object Model (JDOM) 是一个针对XML文档的Java API,它提供了一种结构化的表示方式来处理XML...

    如何使用JAXB框架定制Web服务行为.doc

    在Java Web服务,特别是JAX-WS(Java API for XML Web Services)中,JAXB被广泛用于处理数据绑定,以实现XML消息与Java对象之间的自动转换。 在Web服务的基本构建中,WSDL(Web Service Description Language)、...

    JDK1.6支持WebService

    6. **JAX-RPC(Java API for XML-Based RPC)向JAX-WS的过渡**:在JDK 1.6之前,JAX-RPC被广泛用于构建Web服务,但在JDK 1.6中,JAX-WS逐渐取代了JAX-RPC,成为推荐的Web服务编程模型,因为它更符合WS-*标准,并且...

Global site tag (gtag.js) - Google Analytics