zoukankan      html  css  js  c++  java
  • JAVA 中的Web 服务规范:

    JAVA 中共有三种WebService 规范,分别是JAXM&SAAJ、JAX-WS(JAX-RPC)、JAX-RS。

    下面来分别简要的介绍一下这三个规范。

    (1.)JAX-WS:

    JAX-WS(Java API For XML-WebService),JDK1.6 自带的版本为JAX-WS2.1,其底层支

    持为JAXB。早期的基于SOAP 的JAVA 的Web 服务规范JAX-RPC(Java API For

    XML-Remote Procedure Call)目前已经被JAX-WS 规范取代,JAX-WS 是JAX-RPC 的演进

    版本,但JAX-WS 并不完全向后兼容JAX-RPC,二者最大的区别就是RPC/encoded 样式的

    WSDL,JAX-WS 已经不提供这种支持。JAX-RPC 的API 从JAVA EE5 开始已经移除,如

    果你使用J2EE1.4,其API 位于javax.xml.rpc.*包。

    JAX-WS(JSR 224)规范的API 位于javax.xml.ws.*包,其中大部分都是注解,提供API 操

    作Web 服务(通常在客户端使用的较多,由于客户端可以借助SDK 生成,因此这个包中的

    API 我们较少会直接使用)。

    WS-MetaData(JSR 181)是JAX-WS 的依赖规范,其API 位于javax.jws.*包,使用注解配

    置公开的Web 服务的相关信息和配置SOAP 消息的相关信息。

    (2.)JAXM&SAAJ:

    JAXM(JAVA API For XML Message)主要定义了包含了发送和接收消息所需的API,相当

    于Web 服务的服务器端,其API 位于javax.messaging.*包,它是JAVA EE 的可选包,因此

    你需要单独下载。

    SAAJ(SOAP With Attachment API For Java,JSR 67)是与JAXM 搭配使用的API,为构建

    SOAP 包和解析SOAP 包提供了重要的支持,支持附件传输,它在服务器端、客户端都需要

    使用。这里还要提到的是SAAJ 规范,其API 位于javax.xml.soap.*包。

    JAXM&SAAJ 与JAX-WS 都是基于SOAP 的Web 服务,相比之下JAXM&SAAJ 暴漏了SOAP

    更多的底层细节,编码比较麻烦,而JAX-WS 更加抽象,隐藏了更多的细节,更加面向对

    象,实现起来你基本上不需要关心SOAP 的任何细节。那么如果你想控制SOAP 消息的更

    多细节,可以使用JAXM&SAAJ,目前版本为1.3。

    (3.)JAX-RS:

    JAX-RS 是JAVA 针对REST(Representation State Transfer)风格制定的一套Web 服务规范,

    由于推出的较晚,该规范(JSR 311,目前JAX-RS 的版本为1.0)并未随JDK1.6 一起发行,

    你需要到JCP 上单独下载JAX-RS 规范的接口,其API 位于javax.ws.rs.*包。

    这里的JAX-WS 和JAX-RS 规范我们采用Apache CXF 作为实现,CXF 是Objectweb Celtix

    和Codehaus XFire 合并而成。CXF 的核心是org.apache.cxf.Bus(总线),类似于Spring 的

    ApplicationContext,Bus 由BusFactory 创建,默认是SpringBusFactory 类,可见默认CXF

    是依赖于Spring 的,Bus 都有一个ID,默认的BUS 的ID 是cxf。你要注意的是Apache CXF

    2.2 的发行包中的jar 你如果直接全部放到lib 目录,那么你必须使用JDK1.6,否则会报

    JAX-WS 版本不一致的问题。对于JAXM&SAAJ 规范我们采用JDK 中自带的默认实现。

    ------------------------------------------------------------------------------------

    1.JAVA 的WebService 规范JAX-WS:

    Web 服务从前面的图中不难看出自然分为Server、Client 两部分,Server 公开Web 服务,

    Client 调用Web 服务,JAX-WS 的服务端、客户端双方传输数据使用的SOAP 消息格式封

    装数据,在后面我们会看到其实SOAP 信封内包装的就是一段XML 代码。

  • 相关阅读:
    Iterator 迭代器
    Collection-List
    Collection-Set
    Collection
    多线程
    面向对象<高级>知识点
    链表
    面向对象<基础>知识点
    三层架构和MVC模式详解
    impala为什么比hive快
  • 原文地址:https://www.cnblogs.com/liaomin416100569/p/9331771.html
Copyright © 2011-2022 走看看