`
chxiaowu
  • 浏览: 242586 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

JAX-RPC vs JAX-WS(一) 简介

 
阅读更多

原文链接:http://www-128.ibm.com/developerworks/webservices/library/ws-tip-jaxwsrpc.html

JAX-WS 2.0JAX-RPC 1.1的后续版本。这篇文章介绍一系列这两种编程模型的对比:

介绍

Web服务已经出现了好长一段时间了。首先有的是SOAP。但是SOAP只是用来描述消息(message)是什么样的。然后就有了WSDL.但是WSDL没有告诉你怎么基于Java平台,来写web服务。然后紧跟着出现了JAX-RPC 1.0。使用了几个月后,国际开放组织JCP(Java Community Process(JCP Java Community Process) 是一个开放的国际组织,主要由Java开发者以及被授权者组成,职能是发展和更新Java技术规范、参考实现(RI)、技术兼容包(TCK)。Java技术和JCP两者的原创者都是SUN计算机公司。然而,JCP已经由SUN1995年创造Java的非正式过程,演进到如今有数百名来自世界各地Java代表成员一同监督Java发展的正式程序。)写这个规范的人们意识到规范必须做些调整,所以就出来了JAX-RPC 1.1。差不多使用这个规范一年后,JCPJAX-RPC规范制订者想要重新构建一个更好的版本:JAX-RPC 2.0。一个基本的目标就是跟行业的发展方向保持一致,但是行业又不是仅仅在做基于RPCWeb服务,他们也在做面向消息的web服务。所以说“RPC”从名称JAX-RPC中被删去了,取而代之的是“WS(它当然是代表Web Service的意思)。因此,JAX-RPC 1.1的后续版本就是JAX-WS 2.0-基于XMLWeb 服务的Java API

什么保持不变

在我们详细说明JAX-RPC 1.1 JAX-WS 2.0之间的不同点之前,我们应该首先讨论下他们两者有哪些方面是相同的:

l         JAX-WS仍然支持基于 HTTPSOAP1.1,所以说互操作性将不会受到影响。同样的消息仍然能够横跨传输线路流动。

l         JAX-WS仍然支持WSDL1.1,所以说你之前学习的那个规范仍然是有用的。WSDL2.0规范就要接近完成了,但是在JAX-WS 2.0最终发布后WSDL1.1仍然能够正常使用。

有什么不一样

l         SOAP 1.2

JAX-RPC JAX-WS都支持SOAP1.1,而JAX-WS也支持SOAP 1.2

l   XML/HTTP

WSDL 1.1规范定义了一个HTTP绑定,通过这种方式你可以在不用SOAP时基于HTTP来发送XML消息。JAX-RPC忽略了HTTP绑定。JAX-WS增加了对它的支持。

l   WS-IBasic Profiles

JAX-RPC支持WS-I’s Basic Profile(BP)1.0,而JAX-WS支持BP1.1(WS-Iweb服务互操作组织。)

l  新的Java特性

Ø         JAX-RPC 映射到Java 1.4,JAX-WS映射到Java 5.0JAX-WS依赖于许多在Java5.0中的新特性。

Ø         Java EE 5,J2 EE 1.4的后续版本,增加了对JAX-WS的支持,但是它同样也保留了对JAX-RPC的支持,这样可能会把现在的Web服务的初学者弄糊涂。

l  数据映射模型

Ø         JAX-RPC有它自己的数据映射模型,它大概涵盖了所有schema类型的90

那些它没有汲及到的都映射到了javax.xml.soap.SOAPElement

Ø         JAX-WS的数据映射模型是JAXB.JAXB承诺映射所有的XML schema

l         接口映射模型

JAX-WS的基本接口映射模型跟JAX-RPC的有很大的不同;但是:

Ø  JAX-WS的模型利用了Java 5.0的新特性。

Ø  JAX-WS的模型进了异步功能。

l          动态的编程模型 

Ø         JAX-WS的动态客户端模型跟JAX-RPC的有很大的不同。许多的改变表明了行业需要:

ü   它引进了面向消息的功能。

ü   它引进了动态的异步功能。

Ø         JAX-WS 也增加了动态的服务器模型,这个JAX-RPC是没有的。

l         MTOM (Message Transmission Optimization Mechanism)

JAX-WS,通过JAXB,增加了对MTOM的支持,新的附件规范。微软从不买进带有附件的SOAP规范;但是可以看出来越来越多的MTOM支持,所以附件的互操作性应该会成为现实的。

l         处理器模型

Ø         JAX-RPCJAX-WS处理器模型有了相当多的改变

Ø         JAX-RPC处理器依赖于SAAJ 1.2JAX-WS处理器依赖于新的SAAJSOAP with Attachments API for Java1.3规范。

在本文以下的内容里,我们将要讨论SOAP 1.2XML/HTTP,WS-I Basic Profiles,还有Java 5.0.

SOAP 1.2

从编程模型的角度来看,SOAP 1.1SOAP 1.2之间实际上没有很多的不同。作为一个Java程序员,这些不同中唯一要碰到的地方就是什么时候使用处理器。SAAJ 1.3已经升级到支持SOAP 1.2了。
XML/HTTP

就像SOAP 1.2的变化,从编程模型的角度来看,SOAP /HTTPXML/HTTP消息之间实际上没有很多的不同。作为一个Java程序员,这些不同中唯一要碰到的地方就是什么时候使用处理器。HTTP绑定有它自己的处理器链并且有它自己的消息语境属性。

WS-Ibasic profiles

JAX-RPC 1.1支持WS-IBasic Profile(BP)1.0.从那时起,WS-IBP制定者就已经开发出来了BP 1.1(而且相关的AP 1.0SSBP 1.0.这些新的profiles阐明了一些小的观点,并且更加明显地定义了附件。JAX-WS2.0支持这些更新的profiles。对于大部分来说,它们存在的不同之处不影响Java编程模型。有个例外就是附件。WS-I还没有消除对附件存在的一些疑问,但是他们也定义了他们自己的XML附件类型:wsi:swaRef

很多人被所有这些profiles搞得很困惑。你将需要一段时间来消除这些困惑。

WS-I的第一个basic profileBP1.0)做了很好的工作来阐明不同的规范。但它不是完美的。而且特别是支持SOAP附件也仍然是不明确的。在他们的第二个迭代中,WS-IBP制定者制定出来了baisic profile附件-BP 1.1-而且修正了一些在第一版本所遗漏的东西。在这点他们也增加了两个互斥的补充到basic profileAP 1.0SSBP 1.0AP 1.0是附件框架(Attachment Profile),它描述了怎样使用Sw/A.SSBP 1.0是简单的SOAP绑定框架,它描述了一个不支持Sw/A(比如说微软的.net)Web服务引擎。The remaining profiles that WS-I has and is working on build on top of those basic profiles.

Java 5

Java语言有很大的变化。JAX-WS依赖于:annotationsgenerics,  executors

总结

JAX-WS2.0JAX-RPC 1.1的后续版本。有一些东西没有变化,但是在某种程度上这两种编程模型是不同的。总的看来,对于你为什么将要或者是将不会从JAX-RPC转移 到JAX-WS有一些原因。

想继续使用JAX-RPC 1.1的原因:

l         If you want to stay with something that's been around a while, JAX-RPC will continue to be supported for some time to come.

l         If you don't want to step up to Java 5.

l         If you want to send SOAP encoded messages or create RPC/encoded style WSDL.

   JAX-RPC走进JAX-WS的原因:

l         If you want to use the new message-oriented APIs.

l         If you want to use MTOM to send attachment data.

l         If you want better support for XML schema through JAXB.

l         If you want to use an asynchronous programming model in your Web service clients.

l         If you need to have clients or services that can handle SOAP 1.2 messages.

l         If you want to eliminate the need for SOAP in your Web services and just use the XML/HTTP binding.

l         If you like playing with leading edge technology.

分享到:
评论

相关推荐

    Jax-ws所需要的JAR包

    7. **jaxrpc-api.jar**:尽管JAX-WS已经取代了JAX-RPC,但在某些老版本或特定场景下,JAX-RPC的API仍可能被引用。 把这些JAR文件复制到Tomcat安装目录的`lib`子目录下,可以确保Tomcat在启动时加载这些依赖,从而...

    用JAX-RPC构建Web服务.docx

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

    jax-ws api jar包

    - **可扩展性**:支持WS-Security、WS-ReliableMessaging等高级Web服务协议,以满足安全性、可靠性的需求。 5. **与JAX-RPC的区别:** - JAX-WS是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, ...

    jaxrpc.jar包

    JAX-RPC是Java平台上的一个标准,它提供了一种简单的方式来调用远程Web服务,就像调用本地方法一样。这个库在开发基于Web服务的应用程序时起着至关重要的作用,特别是在那些需要与不同系统进行集成的复杂项目中。 ...

    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详解** 在IT领域,尤其是在Java企业级应用开发中,Web服务扮演着至关重要的角色。J2EE(Java 2 Platform, Enterprise Edition)提供了一...

    webservice之jax-ws

    开发者可以使用诸如Apache CXF、Metro等开源框架来支持JAX-WS的开发,这些框架提供了更多的功能,如WS-Security、WS-Policy等扩展,同时简化了开发过程。 8. **示例** 在提供的链接...

    JAX-WS规范

    JAX-WS是Sun Microsystems在J2EE 5.0中引入的,目的是简化Web服务的开发过程,取代了之前的JAX-RPC(Java API for XML-based Remote Procedure Calls)。JAX-WS通过使用WSDL(Web服务描述语言)来定义服务接口,使得...

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

    在提供的压缩包文件中,包括了`ws-tipjax2SOAPHandler.ear`和`ws-tip-extend.zip`两个文件。这些文件可能是服务端部署的应用和客户端使用的样例代码。通常,`.ear`文件是Java EE应用程序的打包格式,包含了服务端的...

    jax-ws webservice简单demo

    Java API for XML Web Services(JAX-WS)是Java平台上的一个标准,用于构建和部署Web服务。它简化了Web服务的开发,使得开发者能够使用Java编程语言来创建、调用和部署SOAP(Simple Object Access Protocol)服务。...

    JAX-WS低版本

    9. **安全性**:JAX-WS支持多种安全模型,包括基本认证、HTTPS、WS-Security等,以确保Web服务的安全通信。 10. **调试与测试**:开发者可以使用诸如soapUI这样的工具,通过发送SOAP请求来测试和调试JAX-WS Web服务...

    webservice Demo注解+jax-ws

    与早期的Java API for XML Processing (JAX-RPC)相比,JAX-WS更符合面向对象的设计原则,更易于使用。 在本示例中,我们主要关注的是使用注解来创建Web服务。注解是一种元数据,它可以在源代码中嵌入,为编译器和...

    JAX-WS Web service

    JAX-WS(Java API for XML Web Services)2.0,由JSR 224定义,是Java EE 5平台的关键组成部分,它是JAX-RPC 1.1的升级版。JAX-WS的主要目标是简化基于XML的Web服务的开发任务,它提供了对SOAP 1.1和1.2,以及XML等...

    JAX-WS自学笔记

    JAX-WS(Java API for XML-Based Web Services)是Java平台上的一个标准,用于构建和消费Web服务。它是JAX-RPC的继承者,提供了更现代、基于标准的编程模型。JAX-WS 2.0是其第二个主要版本,与Java 5兼容,并且基于...

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

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

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

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

    JAX-WS使用教程

    JAX-WS支持SOAP协议,是构建SOAP消息的一种机制,也可以处理HTTP绑定以及支持WS-Addressing、document/literal样式,并符合WS-I Basic Profile 1.1规范。 JAX-WS的一个核心概念是Service Endpoint Interface(SEI)...

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

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

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

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

    Web Service学习小结——基于JDK自带JAX-WS实现的web service

    - 考虑到Web服务的安全性,JAX-WS支持WS-Security标准,可以实现消息认证、加密和签名。 8. **测试**: - 使用工具如`wsimport`生成客户端代码后,可以编写测试用例来验证服务的正确性。 9. **ws_1文件**: - ...

Global site tag (gtag.js) - Google Analytics