欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JAX-WS

程序员文章站 2022-03-14 17:05:14
...

CXF 支持的JAX-WS 的API,那什么是JAX-WS?

JAX-WS规范是一组XML web services的JAVA API。JAX-WS允许开发者可以选择RPC-oriented或者message-oriented 来实现自己的web services。
在 JAX-WS中,一个远程调用可以转换为一个基于XML的协议例如SOAP。在使用JAX-WS过程中,开发者不需要编写任何生成和处理SOAP消息的代码。JAX-WS的运行时实现会将这些API的调用转换成为SOAP消息。
在服务器端,用户只需要通过Java语言定义远程调用所需要实现的接口SEI (service endpoint interface),并提供相关的实现,通过调用JAX-WS的服务发布接口就可以将其发布为WebService接口。
在客户端,用户可以通过JAX-WS的API创建一个代理(用本地对象来替代远程的服务)来实现对于远程服务器端的调用。

 

当然 JAX-WS 也提供了一组针对底层消息进行操作的API调用,你可以通过Dispatch 直接使用SOAP消息或XML消息发送请求或者使用Provider处理SOAP或XML消息。


通过web service所提供的互操作环境,我们可以用JAX-WS轻松实现JAVA平台与其他编程环境(.net等)的互操作。

JAX-WS与JAX-RPC之间的关系
Sun最开始的web services的实现是JAX-RPC 1.1 (JSR 101 )。这个实现是基于Java的RPC,并不完全支持schema规范,同时没有对Binding和Parsing定义标准的实现。

JAX-WS2.0 (JSR 224 )是Sun新的web services协议栈,是一个完全基于标准的实现。在binding层,使用的是the Java Architecture for XML Binding (JAXB, JSR 222 ),在parsing层,使用的是the Streaming API for XML (StAX, JSR 173 ),同时它还完全支持schema规范。

JAX-WS与JAX-RPC的区别
至于JAX-WS为什么一下就成为2.0, 有一个比较官方的解释

 

如果你在使用CXF并想通过JAX-WS API进行开发的话,可以参考一下FuseSource 所提供的JAX-WS Development Guide 。 如果你想对JAX-WS涉及到的相关标准有比较完整的了解,可以看一下这个 教程

 

使用JAX-WS API 来开发的好处是可以保证你的应用可以部署在任意实现了 JAX-WS的运行环境中。试想一下你的WebService可以部署在任意的提供JAX-WS实现的环境中而不用修改任何的代码是不是很爽的一件事。

 

补充

到现在(2010年10月), JAX-WS 已经步入 2.2 版本, 目前除了Sun的RI 提供相应的支持(JDK 6提供的是 JAX-WS 2.1的实现, JDK7 已经集成了JAX-WS 2.2), 同时Apache CXF 2.3.0 也开始提供了JAX-WS 2.2 的支持。 

 

有关CXF2.3.0 的信息大家可以参考这篇blog