`
chxiaowu
  • 浏览: 235040 次
  • 性别: 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.

分享到:
评论

相关推荐

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

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

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

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

    使用JAX-WS(JWS)发布WebService

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

    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结束语下载参考...早期的ApacheAxis建立在第一个面向Web服务的Java标准JAX-RPC的基础之上。事实证明,这并不是一个很好的方法,因为JAX-RPC限制了Axis代码的内部设计,

    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...

    Spring 实现远程访问详解——rmi

    6. JAX-WS:Spring通过JAX-WS为远程Web服务提供支持(the successor of JAX-RPC, as introduced in Java EE 5 and Java 6)。 7. JMS:远程访问通过类JmsInvokerServiceExporter和JmsInvokerProxyFactoryBean使用JMS的...

    JAVA的WebService支持CXF与SAAJ第三版

    这个教程将了如何使用CXF开发WebService,包括JAX-WS、JAX-RS规范、数字证书、MTOM附件传输、异步调用、异常处理、使用Axis+Spring解决RPC/Encode的问题向旧规范JAX-RPC的兼容,第三版版教程在最一开始分别介绍了...

    wsdl和uddi的资料

    介绍wsdl和uddi的例子 快下呀,我没积分了

    WebService大讲堂之Axis2系列教程

    Axis2是目前比较流行的WebService引擎。...本课程站在初学者角度介绍了Axis2的大多数常用的功能,例如,以多种方式编写和发布WebService、JAX-RPC、JAX-WS、复杂类型传输、WebService会话管理、Axis2模块等

    javaee7-samples:JAVA EE 7 课程演示

    (删减)JAX-RPC 1.1 - - JAX-WS 2.2a - -项目-邮件列表 JAXB 2.2 - JSR 222 -项目-邮件列表 Web 服务 1.4 - JSR 109 Web 服务元数据 2.1 - JSR 181 JAX-RS 2.0 - JSR 339 -项目-邮件列表- Jersey - @gf_jersey - ...

    java11新特性.zip

    JAX-WS(也就是基于XML的Web服务的JavaAPI,JAXBXML绑定,JAX-WS允许开发者可以选择RPC- oriented或者message-oriented来实现自己的webservice) 2. JAF(也就是JavaBeans激活框架,一个专用的数据处理框架,它...

    Java_EE_6规范中文版

    6.13 JAX-WS 2.2 标准 6.14 JAX-RS 1.1标准 6.15 JAXB 2.2 标准 6.16 JAXR 1.0 标准 6.17 API 1.1标准 6.18 API 1.2 标准 6.19 JACC 1.4 标准 6.20 JASPIC 1.0 标准 6.21 JSR-45 标准 6.22 SJSTL 1.2 标准 6.23 ...

    webservice Axis2教程

    本课程站在初学者角度介绍了Axis2的大多数常用的功能,例如,以多种方式编写和发布WebService、JAX-RPC、JAX-WS、复杂类型传输、WebService会话管理、Axis2模块等。本课程共分为两部分,其中第一部分为Axis2基础知识...

    Spring中文帮助文档

    2.5.7. JAX-WS支持 2.6. 其他 2.6.1. 动态语言支持 2.6.2. 增强的测试支持 2.6.3. JMX 支持 2.6.4. 将Spring 应用程序上下文部署为JCA adapter 2.6.5. 计划任务 2.6.6. 对Java 5 (Tiger) 支持 2.7. 移植到...

    Spring API

    2.5.7. JAX-WS支持 2.6. 其他 2.6.1. 动态语言支持 2.6.2. 增强的测试支持 2.6.3. JMX 支持 2.6.4. 将Spring 应用程序上下文部署为JCA adapter 2.6.5. 计划任务 2.6.6. 对Java 5 (Tiger) 支持 2.7. 移植到...

    XML与Webservice实用参考

    发现介绍开源的资料太多了,基础知识反而少有关注,最近闲来无事,将多年工作中用到的比较实际的xml与webservice基础东西讲一些,基本的都有谈到,但ppt中分类不方便,因此流水账似地覆盖知识点。...

    Manning.Spring.in.Action.4th.Edition.2014.11.epub

    15.5.2. Proxying JAX-WS services on the client side 15.6. Summary Chapter 16. Creating REST APIs with Spring MVC 16.1. Getting REST 16.1.1. The fundamentals of REST 16.1.2. How Spring supports REST ...

Global site tag (gtag.js) - Google Analytics