`
lbxhappy
  • 浏览: 307442 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jax ws 注释详解

    博客分类:
  • j2ee
阅读更多

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

JAX-WS 编程标准支持将具有用于定义服务端点应用程序的元数据的 Java 类作为 Web Service 来注释以及注释客户机可以如何访问 Web Service。JAX-WS 支持使用基于 Metadata Facility for the Java Programming Language(Java 规范请求(JSR)175)规范和“用于 Java 平台的 Web Service 元数据”(JSR 181)规范的注释,还可以使用由 JAX-WS 2.0(JSR 224)规范定义的注释(包括 JAXB 注释)。通过使用符合 JSR 181 标准的注释,可以简单地注释服务实现类或服务接口,并且现在将应用程序作为 Web Service 来启用。通过在 Java 源代码中使用注释可以简化 Web Service 的开发和部署,因为会定义一些通常从部署描述符文件和 WSDL 文件中获得的附加信息,或者会将元数据从 XML 和 WSDL 映射至源工件中。

使用注释来配置绑定、处理程序链、端口类型的集合名称、服务以及其他 WSDL 参数。注释用于将 Java 映射至 WSDL 和模式,以及在运行时控制 JAX-WS 运行时处理和响应 Web Service 调用的方式。

下表中列示了 JAX-WS 支持的注释。注释的目标适用于下列 Java 对象:
  • 诸如 Java 类、枚举或接口等类型
  • 方法
  • 用于表示 Java 类中局部实例变量的字段
  • Java 方法中的参数
    Web Service 元数据注释(JSR 181)
    注释类: 注释: 属性:
    javax.jws.WebService 当实现 Web Service 时,@WebService 注释标记 Java 类;实现 Web Service 接口时,标记服务端点接口(SEI)。

    要点:

    • 实现 Web Service 的 Java 类必须指定 @WebService 或 @WebServiceProvider 注释。不能同时提供这两种注释。

    此注释适用于客户机/服务器 SEI 或 JavaBeans 端点的服务器端点实现类。

    • 如果注释通过 endpointInterface 属性引用了某个 SEI,那么还必须使用 @WebService 注释来注释该 SEI。

    • 请参阅适 用于使用 @WebService 注释的类的方法的规则 ,以了解更多信息。

    • 注释目标:类型
    • 属性:
      - name
      wsdl:portType 的名称。缺省值为 Java 类或接口的非限定名称。(字符串)
      - targetNamespace
      指定从 Web Service 生成的 WSDL 和 XML 元素的 XML 名称空间。缺省值为从包含该 Web Service 的包名映射的名称空间。(字符串)
      - serviceName
      指定 Web Service 的服务名称:wsdl:service 。缺省值为 Java 类的简单名称 + Service 。(字符串)
      - endpointInterface
      指定用于定义服务的抽象 Web Service 约定的服务端点接口的限定名。如果指定了此限定名,那么会使用该服务端点接口来确定抽象 WSDL 约定。(字符串)
      - portName
      wsdl:portName 。缺省值为 WebService.name+Port 。(字符串)
      - wsdlLocation
      指定用于定义 Web Service 的 WSDL 文档的 Web 地址。Web 地址可以是相对路径或绝对路径。(字符串)
    javax.jws.WebMethod @WebMethod 注释表示作为一项 Web Service 操作的方法。

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

    要点:

    • 仅支持在使用 @WebService 注释来注释的类上使用 @WebMethod 注释。

    • 注释目标:方法
    • 属性:
      - operationName
      指定与此方法相匹配的 wsdl:operation 的名称。缺省值为 Java 方法的名称。(字符串)
      - action
      定义此操作的行为。对于 SOAP 绑定,此值将确定 SOAPAction 头的值。缺省值为 Java 方法的名称。(字符串)
      - exclude
      指定是否从 Web Service 中排除某一方法。缺省值为 false 。(布尔值)
    javax.jws.Oneway @Oneway 注释将一个方法表示为只有输入消息而没有输出消息的 Web Service 单向操作。

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

    • 注释目标:方法
    • 没有适用于 Oneway 注释的属性。
    javax.jws.WebParam @WebParam 注释用于定制从单个参数至 Web Service 消息部件和 XML 元素的映射。

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

    • 注释目标:参数
    • 属性:
      - name
      参数的名称。如果操作是远程过程调用(RPC)类型并且未指定 partName 属性,那么这是用于表示参数的 wsdl:part 属性的名称。如果操作是文档类型或者参数映射至某个头,那么 -name 是用于表示该参数的 XML 元素的局部名称。如果操作是文档类型、参数类型为 BARE 并且方式为 OUTINOUT ,那么必须指定此属性。(字符串)
      - partName
      定义用于表示此参数的 wsdl:part 属性的名称。仅当操作类型为 RPC 或者操作是文档类型并且参数类型为 BARE 时才使用此参数。(字符串)
      - targetNamespace
      指定参数的 XML 元素的 XML 名称空间。当属性映射至 XML 元素时,仅应用于文档绑定。缺省值为 Web Service 的 targetNamespace 。(字符串)
      - mode
      此值表示此方法的参数流的方向。有效值为 ININOUTOUT 。(字符串)
      - 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.HandlerChain @HandlerChain 注释用于使 Web Service 与外部定义的处理程序链相关联。

    只能通过对 SEI 或实现类使用 @HandlerChain 注释来配置服务器端的处理程序。

    但是可以使用多种方法来配置客户端的处理程序。可以通过对生成的服务类或者 SEI 使用 @HandlerChain 注释来配置客户端的处理程序。此外,可以按程序在服务上注册您自己的 HandlerResolver 接口实现,或者按程序在绑定对象上设置处理程序链。

    • 注释目标:类型
    • 属性:
      - file
      指定处理程序链文件所在的位置。文件位置可以是采用外部格式的绝对 java.net.URL,也可以是类文件中的相对路径。(字符串)
      - name
      指定配置文件中处理程序链的名称。(字符串)
    javax.jws.SOAPBinding @SOAPBinding 注释指定 Web Service 与 SOAP 消息协议之间的映射。

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

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

    • 注释目标:类型或方法
    • 属性:
      - style
      定义发送至 Web Service 和来自 Web Service 的消息的编码样式。有效值为 DOCUMENTRPC 。缺省值为 DOCUMENT 。(字符串)
      - use
      定义用于发送至 Web Service 和来自 Web Service 的消息的格式。缺省值为 LITERALENCODED 在 Feature Pack for Web Services 中不受支持。(字符串)
      - parameterStyle
      确定方法的参数是否表示整个消息体,或者参数是否是封装在执行操作之后命名的顶级元素中的元素。有效值为 WRAPPEDBARE 。对于 DOCUMENT 类型的绑定只能使用 BARE 值。缺省值为 WRAPPED 。(字符串)
    JAX-WS 注释(JSR 224)
    注释类: 注释: 属性:
    javax.xml.ws.BindingType @BindingType 注释指定在发布此类型的端点时要使用的绑定。

    将此注释应用于 JavaBeans 端点或提供程序端点的服务器端点实现类。

    要点:

    • 可以通过将该注释的值指定为 javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_MTOM_BINDINGjavax.xml.ws.soap.SOAPBinding.SOAP12HTTP_MTOM_BINDING 来对 Java bean 端点实现类使用 @BindingType 注释以启用 MTOM。

    • 注释目标:类型
    • 属性:
      - value
      指示绑定标识 Web 地址。有效值为 javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_BINDINGjavax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDINGjavax.xml.ws.http.HTTPBinding.HTTP2HTTP_BINDING 。缺省值为 javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_BINDING 。(字符串)
    javax.xml.ws.RequestWrapper @RequestWrapper 注释提供 JAXB 生成的请求包装器 bean、元素名称和名称空间,用于对在运行时使用的请求包装器 bean 进行序列化和反序列化。

    从 Java 对象开始时,此元素用来解决 document literal 方式下的重载冲突。在这种情况下,只有 className 属性是必需的。

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

    • 注释目标:方法
    • 属性:
      - localName
      指定用于表示请求包装器的 XML 模式元素的局部名称。缺省值为在 javax.jws.WebMethod 注释中定义的 operationName 。(字符串)
      - targetNamespace
      指定请求包装器方法的 XML 名称空间。缺省值为 SEI 的目标名称空间。(字符串)
      - className
      指定用于表示请求包装器的类的名称。(字符串)
    javax.xml.ws.ResponseWrapper @ResponseWrapper 注释提供 JAXB 生成的响应包装器 bean、元素名称和名称空间,用于对在运行时使用的响应包装器 bean 进行序列化和反序列化。

    从 Java 对象开始时,此元素用来解决 document literal 方式下的重载冲突。在这种情况下,只有 className 属性是必需的。

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

    • 注释目标:方法
    • 属性:
      - localName
      指定用于表示请求包装器的 XML 模式元素的局部名称。缺省值为 operationName + ResponseoperationName 是在 javax.jws.WebMethod 注释中定义的。(字符串)
      - targetNamespace
      指定请求包装器方法的 XML 名称空间。缺省值为 SEI 的目标名称空间。(字符串)
      - className
      指定用于表示响应包装器的类的名称。(字符串)
    javax.xml.ws.ServiceMode @ServiceMode 注释指定服务提供者是需要对整个协议消息具有访问权还是只需对消息有效内容具有访问权。

    要点:

    • 仅支持在使用 @WebServiceProvider 注释来注释的类上使用 @ServiceMode 注释。

    • 注释目标:类型
    • 属性:
      - value
      指示提供者类是接受消息的有效内容 PAYLOAD 还是整个消息 MESSAGE 。缺省值为 PAYLOAD 。(字符串)
    javax.xml.ws.WebFault @WebFault 注释将 WSDL 故障映射至 Java 异常。对从 WSDL 故障消息引用的全局元素生成的 JAXB 类型进行序列化期间,该注释用来捕获故障的名称。它还可以用来定制从特定于服务的异常到 WSDL 故障的映射。

    此注释只能应用于客户机或服务器上的故障实现类。

    • 注释目标:类型
    • 属性:
      - name
      指定用于表示 WSDL 文件中相应故障的 XML 元素的局部名称。必须指定实际值。(字符串)
      - targetNamespace
      指定用于表示 WSDL 文件中相应故障的 XML 元素的名称空间。(字符串)
      - faultBean
      指定故障 bean 类的名称。(字符串)
    javax.xml.ws.WebServiceProvider @WebServiceProvider 注释表示一个类满足 JAX-WS 提供程序实现类的要求。

    要点:

    • 实现 Web Service 的 Java 类必须指定 @WebService 或 @WebServiceProvider 注释。不能同时提供这两种注释。

    • 只有服务实现类才支持 @WebServiceProvider 注释。

    • 任何具有 @WebServiceProvider 注释的类都必须具有名为 invoke 的操作。

    • 注释目标:类型
    • 属性:
      - targetNamespace
      指定从 Web Service 生成的 WSDL 和 XML 元素的 XML 名称空间。缺省值为从包含该 Web Service 的包名映射的名称空间。(字符串)
      - serviceName
      指定 Web Service 的服务名称:wsdl:service 。缺省值为 Java 类的简单名称 + Service 。(字符串)
      - portName
      wsdl:portName 。缺省值为类的名称 + Port 。(字符串)
      - wsdlLocation
      用于定义 Web Service 的 WSDL 文档的 Web 地址。此属性是必需的。(字符串)
    JAX-WS 常用注释(JSR 250)
    注释类: 注释: 属性:
    javax.annotation.Resource @Resource 注释标记应用程序所需要的 WebServiceContext 资源。

    将此注释应用于 JavaBeans 端点或提供程序端点的服务器端点实现类。对容器进行初始化时,容器会将 WebServiceContext 资源的实例添加到端点实现中。

    • 注释目标:字段或方法
    • 属性:
      - type
      指示资源的 Java 类型。您需要使用缺省值 java.lang.Object 或者 javax.xml.ws.Web ServiceContext 值。如果类型是缺省值,那么必须将资源添加到字段或方法中。在这种情况下,字段的类型或者由方法定义的 JavaBeans 属性的类型必须为 javax.xml.ws.WebServiceContext 。(字符串)
    javax.annotation.PostConstruct @PostConstruct 注释标记需要在对类执行依赖性注入之后才执行的方法。

    将此注释应用于 JAX-WS 应用程序处理程序、JavaBeans 端点或提供程序端点的服务器端点实现类。

    • 注释目标:方法
    javax.annotation.PreDestroy @PreDestroy 注释标记在容器除去实例时必须执行的方法。

    将此注释应用于 JAX-WS 应用程序处理程序、JavaBeans 端点或提供程序端点的服务器端点实现类。

    • 注释目标:方法
    <!-- -->

    适用于使用 @WebService 注释的类的方法的规则

    下列规则适用于使用 @WebService 注释来注释的类的方法。
    • 如果某个实现类的 @WebService 注释引用了 SEI,那么该实例类不能具有任何 @WebMethod 注释。
    • 无论是否指定了 @WebMethod 注释,SEI 的所有公用方法都被认为是已显示的方法。在包含 exclude 属性的 SEI 上使用 @WebMethod 注释是不正确的。
    • 对于不引用 SEI 的实现类,如果对 @WebMethod 注释指定了值 exclude=true ,那么不会显示该方法。如果未指定 @WebMethod 注释,那么将显示包括继承的方法在内的所有公用方法,但是不包括从 java.lang.Object 继承的方法。
分享到:
评论

相关推荐

    Jax-ws所需要的JAR包

    Java API for XML Web Services(JAX-WS)是Java平台上用于构建和消费Web服务的标准API。它简化了创建和使用Web服务的过程,使得开发者能够通过SOAP消息与远程服务进行交互。JAX-WS允许开发者将服务接口直接映射到...

    jax-ws webservice demo

    基于jax-ws 实现的web service client和server端的demo程序。 注:如果使用的是 myeclipse 时 server 部署到tomcat 启动的时候会报错 解决办法:找到myeclipse安装目录下的 plugins 目录里 查找 webservices-rt.jar,...

    jax-rs jax-ws所需包,亲测可用

    **JAX-RS与JAX-WS详解:** 1. **JAX-RS**(Java API for RESTful Web Services)是Java平台上的REST(Representational State Transfer)风格Web服务的标准。REST是一种轻量级的架构风格,它基于HTTP协议,利用URL...

    JAX-WS规范

    **JAX-WS规范详解** Java API for XML Web Services(JAX-WS)是Java平台上的一个标准,用于创建Web服务和客户端。它提供了一种简单、类型安全的方式来构建和消费基于SOAP的消息传递应用程序,是Java世界中实现Web...

    jax-ws api jar包

    在给定的压缩包文件"jax-ws api jar包"中,包含的是JAX-WS 2.2.1版本的API库,即`jaxws-api-2.2.1.jar`。这个jar文件是开发基于JAX-WS的Web服务所必需的依赖之一。以下是关于JAX-WS的一些核心知识点: 1. **服务端...

    JAX_WS的demo

    **JAX-WS详解与应用** Java API for XML Web Services(JAX-WS)是Java平台上用于构建Web服务和客户端的API,它简化了Web服务的开发和使用。本篇文章将深入探讨JAX-WS的基本概念、核心组件以及如何通过一个简单的...

    JAX-WS2.0 API

    JAX-WS 2.0是JAX-WS的第二个主要版本,它在JAX-RPC(Java API for XML-based RPC)的基础上进行了改进,引入了许多新特性以提升开发者的体验和效率。 **JAX-WS 2.0 的核心概念:** 1. **服务端点接口(SEI, ...

    解决weblogic部署JAX-WS需要的配置文件

    在WebLogic服务器上部署JAX-WS服务时,可能会遇到一些配置问题。JAX-WS(Java API for XML Web Services)是Java平台上的一个标准,用于创建和部署Web服务。WebLogic作为一款强大的Java EE应用服务器,支持JAX-WS...

    webservice之jax-ws

    【标题】:Web服务之Java API for XML Web Services (JAX-WS) 【内容详解】 JAX-WS,全称为Java API for XML Web Services,是Java平台上的一个标准,用于构建和部署基于SOAP(Simple Object Access Protocol)的...

    JAX-WS2.1用户指南

    **JAX-WS2.1用户指南** JAX-WS(Java API for XML Web Services)是Java平台上用于创建Web服务的标准API,版本2.1是其一个重要里程碑。本指南将深入探讨JAX-WS 2.1的核心概念、功能以及如何在实际开发中应用它。...

    jax-ws2.1.zip

    **标题:“jax-ws2.1.zip”**指的是一个包含Java API for XML Web Services(JAX-WS)2.1版本的压缩包。JAX-WS是Java平台标准版(Java SE)和企业版(Java EE)的一部分,用于构建基于SOAP(Simple Object Access ...

    jax-ws步骤

    **Java JAX-WS 步骤详解** Java JAX-WS (Java API for XML Web Services) 是一种标准的 Java 框架,用于创建和消费 Web 服务。它简化了 Web 服务的开发过程,无需复杂的配置文件,而是通过注解来定义服务接口和服务...

    jax-ws发布webservice

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

    java实验_JAX-Ws

    Java实验_JAX-WS主要涉及的是Java平台上的Web服务开发技术,JAX-WS(Java API for XML Web Services)是Java SE和Java EE环境中用于创建和消费SOAP Web服务的标准库。这个实验旨在帮助你深入理解JAX-WS的工作原理...

    JAX-WS低版本

    **标题解析:** "JAX-WS低版本" 指的是Java API for XML Web Services的一个较早的发行版。JAX-WS是Java平台上用于创建Web服务的标准API,它简化了开发和部署基于SOAP(Simple Object Access Protocol)的Web服务和...

    jax-ws webservice简单demo

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

    JAX-WS 2.2 RI所有相关jar包

    JAX-WS 2.2 RI 所包含的JAR包集合,包含25个JAR包,列表如下: FastInoset.jar gmbal-api-only.jar ha-api.jar javax.annotation.jar javax.mail_1.4.jar jaxb-api.jar jaxb-impl.jar jaxb-xjc.jar jaxws-api...

    如何基于JAX-WS开发一个WebService实例

    JAX-WS(Java API for XML Web Services)是Java平台上的一个标准,用于创建和消费Web服务。本篇将深入讲解如何基于JAX-WS开发一个WebService实例。 首先,让我们了解JAX-WS的基本概念。JAX-WS提供了一种简单的方式...

    jax-ws用户指南 pdf版

    ### JAX-WS 2.2 用户指南知识点详解 #### 概览 JAX-WS (Java API for XML Web Services) 是 Java 平台上用于开发和实现 Web 服务的官方标准之一。本用户指南详细介绍了 JAX-WS 2.2 版本的功能、编程模型以及如何...

    JAX-WS API, JAX-RS API

    **JAX-WS API** Java API for XML Web Services (JAX-WS) 是Java平台上的一个标准接口,用于创建和消费Web服务。它是Sun Microsystems在2004年推出的一个重要框架,旨在简化Web服务的开发,使得Java开发者能够更...

Global site tag (gtag.js) - Google Analytics