• JAX-WS 注解


    一、概述

    “基于 XML 的 Web Service 的 Java API”(JAX-WS)通过使用注释来指定与 Web Service 实现相关联的元数据以及简化 Web Service 的开发。注解描述如何将服务器端的服务作为 Web Service 进行发布或者客户端的 Java 类如何访问 Web Service。

    二、javax.jws.WebService

    该注解应用于类或者接口上面,该类便是一个对外访问WebService,默认情况里面所有的public方法都是可以对外提供访问,如果@WebServcie标注接口,那么该接口有一个专业名称SEI(ServiceEnpointInterface),该注解的属性如下:

    name 服务实现类的名称,wsdl上面<wsdl:portType> 的名称
    serviceName 服务名称,wdsl上面<wsdl:service>的名称,缺省值为 Java 类的简单名称 + Service
    portName wsdl上面<wsdl:portName>的名称,默认为发布实现者+Port
    targetNamespace 命名空间名称:发布webService服务的命名空间,此名称默认为包路径的“倒写”
    endpointInterface 服务接口全路径, 指定做SEI(Service EndPoint Interface)服务端点接口
    wsdlLocation 指定用于定义 Web Service 的 WSDL 文档的 Web 地址。Web 地址可以是相对路径或绝对路径。

    三、javax.jws.WebMethod

    @WebMethod注解,该注解应用于方法上面,该注解的属性如下所示:

    operationName 指定与此方法相匹配的<wsdl:operation>的名称。缺省值为 Java 方法的名称
    action 定义此操作的行为。对于 SOAP 绑定,此值将确定 <SOAP:action> 头的值。缺省值为 Java 方法的名称。
    exclude 指定是否从 Web Service 中排除某一方法。缺省值为 false。

     四、javax.jws.Oneway

    @Oneway 该注解应用于方法上

    注释将一个方法表示为只有输入消息而没有输出消息的 Web Service 单向操作。

    将此注释应用于客户机或服务器服务端点接口(SEI)上的方法,或者应用于 JavaBeans 端点的服务器端点实现类  

    五、javax.jws.WebParam

    @WebParam 注释用于定制从单个参数至 Web Service 消息部件和 XML 元素的映射。

    将此注释应用于客户机或服务器服务端点接口(SEI)上的方法,或者应用于 JavaBeans 端点的服务器端点实现类;该注解属性如下所示:

    name 参数的名称。如果操作是远程过程调用(RPC)类型并且未指定partName 属性,那么这是用于表示参数的 wsdl:part 属性的名称。如果操作是文档类型或者参数映射至某个头,那么 -name 是用于表示该参数的 XML 元素的局部名称。如果操作是文档类型、参数类型为 BARE 并且方式为 OUT 或 INOUT,那么必须指定此属性。
    partName 定义用于表示此参数的 wsdl:part属性的名称。仅当操作类型为 RPC 或者操作是文档类型并且参数类型为BARE 时才使用此参数
    targetNamespace 指定参数的 XML 元素的 XML 名称空间。当属性映射至 XML 元素时,仅应用于文档绑定。缺省值为 Web Service 的 targetNamespace。
    mode 此值表示此方法的参数流的方向。有效值为 IN、INOUT 和 OUT。
    header 指定参数是在消息头还是消息体中。缺省值为 false。

     六、javax.jws.WebResult

    @WebResult 注释用于定制返回值至 WSDL 部件或 XML 元素的映射。

    将此注释应用于客户机或服务器服务端点接口(SEI)上的方法,或者应用于 JavaBeans 端点的服务器端点实现类。该注解的属性如下:

    name 当返回值列示在 WSDL 文件中并且在连接上的消息中找到该返回值时,指定该返回值的名称。对于 RPC 绑定,这是用于表示返回值的 wsdl:part属性的名称。对于文档绑定,-name参数是用于表示返回值的 XML 元素的局部名。对于 RPC 和 DOCUMENT/WRAPPED 绑定,缺省值为 return。对于 DOCUMENT/BARE 绑定,缺省值为方法名 + Response。
    targetNamespace 指定返回值的 XML 名称空间。仅当操作类型为 RPC 或者操作是文档类型并且参数类型为 BARE 时才使用此参数
    header 指定头中是否附带结果。缺省值为false
    partName 指定 RPC 或 DOCUMENT/BARE 操作的结果的部件名称。缺省值为@WebResult.name

     七、javax.jws.SOAPBinding

    @SOAPBinding 注释指定 Web Service 与 SOAP 消息协议之间的映射。

    将此注释应用于客户机或服务器服务端点接口(SEI)上的类型或方法,或者应用于 JavaBeans 端点的服务器端点实现类。

    方法级别的注释仅限于它可以指定的对象,仅当style 属性为 DOCUMENT 时才使用该注释。如果未指定方法级别的注释,那么将使用类型的@SOAPBinding 行为,该注解的属性如下所示:

    style 定义发送至 Web Service 和来自 Web Service 的消息的编码样式。有效值为DOCUMENT 和 RPC。缺省值为DOCUMENT。
    use 定义用于发送至 Web Service 和来自 Web Service 的消息的格式。缺省值为 LITERAL。ENCODED 在 Feature Pack for Web Services 中不受支持。
    parameterStyle 确定方法的参数是否表示整个消息体,或者参数是否是封装在执行操作之后命名的顶级元素中的元素。有效值为 WRAPPED 或 BARE。对于DOCUMENT 类型的绑定只能使用BARE 值。缺省值为 WRAPPED。

    八、使用 @WebService需要注意的地方

    如果某个实现类的 @WebService 注释引用了 SEI,那么该实例类不能具有任何 @WebMethod 注释。

    无论是否指定了 @WebMethod 注释,SEI 的所有公用方法都被认为是已显示的方法。在包含 exclude 属性的 SEI 上使用 @WebMethod 注释是不正确的。

    对于不引用 SEI 的实现类,如果对 @WebMethod 注释指定了值 exclude=true,那么不会显示该方法。如果未指定 @WebMethod 注释,那么将显示包括继承的方法在内的所有公用方法,但是不包括从 java.lang.Object 继承的方法。

  • 相关阅读:
    剑指47 礼物的最大价值
    剑指46 把数字转化成字符串
    剑指41:数据流中的中位数
    剑指39 数组中出现次数超过半数的数
    centos 7关闭与启用防火墙,开放端口,常用命令介绍
    用docker swarm搭建docker集群
    centos 7离线安装docker, 离线安装docker-compose
    centos 7离线安装harbor
    mysql-8安装教程(windows 64位)
    centos 7离线安装中文版GitLab
  • 原文地址:https://www.cnblogs.com/jswang/p/7655726.html
Copyright © 2020-2023  润新知