JAX-WS 注释
Java™ API for XML-Based Web Services (JAX-WS) 依赖于使用注释来指定与 Web Service 实现相关联的元数据以及简化 Web Service 的开发。 注释描述了如何将服务器端服务实现作为 Web Service 进行访问,或者客户机端 Java 类如何访问 Web Service。
JAX-WS 编程标准支持使用元数据对 Java 类进行注释,这些元数据用于将服务端点应用程序定义为 Web Service 以及客户机可以如何访问该 Web Service。 JAX-WS 支持使用基于 Java 编程语言 (Java 规范请求 (JSR) 175) 规范的元数据工具, Java 平台的 Web Service 元数据 (JSR 181) 规范以及 JAX-WS 2.0 和更高版本 (JSR 224) 规范 (其中包含 JAXB 注释) 定义的注释。 通过使用 JSR 181 标准中的注释,您可以简单地注释服务实现类或服务接口,并且应用程序现在将作为 Web Service 进行启用。 在 Java 源中使用注释可通过定义通常从部署描述符文件, WSDL 文件或将元数据从 XML 和 WSDL 映射到源工件中获取的一些其他信息来简化 Web Service 的开发和部署。
使用注释来配置绑定、处理程序链、端口类型的集合名称、服务以及其他 WSDL 参数。 注释用于将 Java 映射到 WSDL 和模式,以及在运行时用于控制 JAX-WS 运行时如何处理和响应 Web Service 调用。
对于 JAX-WS Web Service,可以选择是否使用 webservices.xml 部署描述符,这是因为您可以使用注释来指定该部署描述符文件所包含的所有信息。 可以使用部署描述符文件来扩充或覆盖现有 JAX-WS 注释。 在 webservices.xml 部署描述符中定义的任何信息都将覆盖注释指定的任何相应信息。
从 WebSphere® Application Server V 7.0 和更高版本开始,将扫描 Java EE 5 应用程序模块 (Web 应用程序模块 V 2.5 或更高版本,或者 EJB 模块 V 3.0 或更高版本) 以获取用于标识 JAX-WS 服务和客户机的注释。 然而,缺省情况下,考虑到性能方面的因素,将不扫描 Java EE 5 应用程序模块之前的模块(Web 应用程序模块 V2.4 或更早版本,或 EJB 模块 V2.1 或更早版本)以获取 JAX-WS 注释。
- 您可以在 WAR 文件或 EJB 模块的 META-INF/MANIFEST.MF 中,将 UseWSFEP61ScanPolicy 属性设为
true。 例如:
当此属性在模块的 META-INF/MANIFEST.MF 文件中设置为Manifest-Version: 1.0 UseWSFEP61ScanPolicy: truetrue时,将扫描模块以获取 JAX-WS 注释,而不考虑模块的 Java EE 版本。 缺省值为false,当缺省值生效时, JAX-WS 注释仅在版本为 Java EE 5 或更高版本的模块中受支持。 - 您可以使用管理控制台来设置
com.ibm.websphere.webservices.UseWSFEP61ScanPolicy定制 Java 虚拟机 (JVM) 属性。 请参阅 JVM 定制属性文档,以获取要使用的正确导航路径。 要请求在所有模块中进行注释扫描,而不考虑其 Java EE 版本,请将定制属性com.ibm.websphere.webservices.UseWSFEP61ScanPolicy设置为true。 您必须在每个需要更改缺省行为的服务器上更改此设置。
com.ibm.websphere.webservices.UseWSFEP61ScanPolicy 设为 true,那么在联合这些节点时,此属性不会影响 Deployment Manager。 在联合节点之前,您必须在 Deployment Manager 上将此属性设为 true,才能保留与迁移前节点上的行为相同的行为。com.ibm.websphere.webservices.UseWSFEP61ScanPolicy 设置为 true 的节点时,这不会影响 Deployment Manager。 如果希望保留与迁移前节点上的行为相同的行为,那么在联合节点之前,您必须在 Deployment Manager 上将此属性设为 true。- Java 类、枚举或接口等类型
- 方法
- 表示 Java 类中局部实例变量的字段
- Java 方法中的参数
| 注释类 | 注释 | 属性 |
|---|---|---|
javax.jws. WebService |
该 @WebService 注解将 Java 类标记为实现了 Web 服务,或将服务端点接口 (SEI) 标记为实现了 Web 服务接口。 重要说明:
|
|
javax.jws. WebMethod |
@WebMethod 注释用于表示作为一项 Web Service 操作的方法。 将此注释应用于客户机或服务器服务端点接口 (SEI) 上的方法,或者应用于服务器端点实现类。 |
|
javax.jws. Oneway |
@Oneway 注释用于将某一方法表示为只有输入消息而没有输出消息的 Web Service 单向操作。 将此注释应用于客户机或服务器服务端点接口 (SEI) 上的方法,或者应用于服务器端点实现类。 |
|
javax.jws. WebParam |
@WebParam 注释用于定制从单个参数至 Web Service 消息部分和 XML 元素的映射。 将此注释应用于客户机或服务器服务端点接口 (SEI) 上的方法,或者应用于服务器端点实现类。 |
|
javax.jws. WebResult |
@WebResult 注释用于定制从返回值至 WSDL 部件或 XML 元素的映射。 将此注释应用于客户机或服务器服务端点接口 (SEI) 上的方法,或者应用于服务器端点实现类。 |
|
javax.jws. HandlerChain |
@HandlerChain 注释用于将 Web Service 与外部定义的处理程序链相关联。 只能通过对服务端点接口 (SEI) 或服务器端点实现类使用 @HandlerChain 注释来配置服务器端的处理程序。 但是可以使用多种方法来配置客户端的处理程序。 可以通过对生成的服务类或者 SEI 使用 @HandlerChain 注释来配置客户端的处理程序。 另外,可以按编程方式在服务上注册您自己的 HandlerResolver 接口实现,或者按编程方式在绑定对象上设置处理程序链。 |
|
javax.jws. SOAPBinding |
@SOAPBinding 注释用于指定 Web Service 与 SOAP 消息协议之间的映射。 将此注释应用于客户机或服务器服务端点接口 (SEI) 上的类型或方法,或者应用于服务器端点实现类。 方法级别的注释仅限于它可以指定的对象,仅当 |
|
| 注释类 | 注释 | 属性 |
|---|---|---|
javax.xml.ws. Action |
@Action 注释用于指定与 Web Service 操作关联的 WS-Addressing 操作。 如果您将此注释与特定方法配合使用,并生成相应的 WSDL 文档,那么会将 WS-Addressing 操作扩展属性添加到与该方法对应的 WSDL 操作的 input 和 output 元素。 要将此属性添加到 WSDL 操作,您还必须在服务器端点实现类上指定 @Addressing 注释。 如果不想使用 @Addressing 注释,那么可以提供您自己的已定义 Action 属性的 WSDL 文档。 |
|
javax.xml.ws. BindingType |
@BindingType 注释指定在发布此类型的端点时要使用的绑定。 将此注释应用于服务器端点实现类。 重要: 您可以在 JavaBeans 端点实现类上使用 @BindingType 注释,通过指定
javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_MTOM_BINDING 或 javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_MTOM_BINDING 作为注释值来启用 MTOM。 |
|
javax.xml.ws. FaultAction |
@FaultAction 注释指定已添加到故障响应中的 WS-Addressing 操作。 此注释必须包含在 @Action 注释中。 如果您将此注释与特定方法配合使用,那么会将 WS-Addressing FaultAction 扩展属性添加到与该方法对应的 WSDL 操作的 fault 元素。 要将此属性添加到 WSDL 操作,您还必须在服务器端点实现类上指定 @Addressing 注释。 如果不想使用 @Addressing 注释,那么可以提供您自己的已定义 Action 属性的 WSDL 文档。 |
|
javax.xml.ws. RequestWrapper |
@RequestWrapper 注释提供 JAXB 生成的请求包装器 Bean、元素名称和名称空间,用于对在运行时使用的请求包装器 Bean 进行序列化和反序列化。 从 Java 对象开始时,此元素用于解决文档文字方式下的重载冲突。 在这种情况下,只有 将此注释应用于客户机或服务器服务端点接口 (SEI) 上的方法,或者应用于服务器端点实现类。 |
|
javax.xml.ws. ResponseWrapper |
@ResponseWrapper 注释提供 JAXB 生成的响应包装器 Bean、元素名称和名称空间,用于对在运行时使用的响应包装器 Bean 进行序列化和反序列化。 从 Java 对象开始时,此元素用于解决文档文字方式下的重载冲突。 在这种情况下,只有 将此注释应用于客户机或服务器服务端点接口 (SEI) 上的方法,或者应用于服务器端点实现类。 |
|
javax.xml.ws. RespectBinding |
@RespectBinding 注释指定 JAX-WS 实现是否必须将 wsdl:binding 的内容用于端点。 如果指定此注释,那么会执行检查以确保支持 enabled 属性设为 true 的所有必需 WSDL 可扩展性元素。 将此注释应用于服务器端点实现类上的方法。 |
|
javax.xml.ws. ServiceMode |
@ServiceMode 注释指定服务提供程序是需要对整个协议消息具有访问权还是只需对消息有效内容具有访问权。 重要: @ServiceMode 注释仅支持注释为 @WebServiceProvider 的类。
|
|
javax.xml.ws. soap.Addressing |
@Addressing 注释指定此服务需要启用 WS-Addressing 支持。 将此注释应用于服务器端点实现类上的方法。 |
|
javax.xml.ws. soap.MTOM |
@MTOM 注释指定是否使用 MTOM 来发送 SOAP 消息体中的二进制内容。 将此注释应用于服务端点实现类。 |
|
javax.xml.ws. WebFault |
注解将 WSDL 故障映射为 Java 异常。 @WebFault 注释将 WSDL 故障映射为 Java 异常。 对从 WSDL 故障消息引用的全局元素生成的 JAXB 类型进行序列化期间,该注释用来捕获故障的名称。 它还可以用来定制从特定于服务的异常到 WSDL 故障的映射。 此注释只能应用于客户机或服务器上的故障实现类。 |
|
javax.xml.ws. WebServiceProvider |
@WebServiceProvider 注释表示一个类满足 JAX-WS 提供程序实现类的要求。 重要说明:
|
|
javax.xml.ws. WebServiceRef |
@WebServiceRef 注释用于定义对客户机所调用的 Web Service 的引用。 注:
|
|
javax.xml.ws. WebServiceRefs |
@WebServiceRefs 注释会将多个 @WebServiceRef 注释与一个特定类相关联。 注: @WebServiceRef 注解仅在某些类类型中支持。 示例包括 JAX-WS 端点实现类, JAX-WS 处理程序类, Enterprise JavaBeans 类和 Servlet 类。 支持此注释的类类型与支持 @Resource 注释的类类型相同。 请参阅 Java Platform, Enterprise Edition (Java EE) 5 规范,以获取受支持类类型的完整列表。
|
|
| 注释类 | 注释 | 属性 |
|---|---|---|
javax.annotation. Resource |
@Resource 注释标记应用程序所需要的 WebServiceContext 资源。 注:
将此注解应用到 JavaBeans 端点或 Provider 端点的服务器端点实现类上的 WebServiceContext 类型字段时,容器会将 WebServiceContext 的实例注入指定的字段。 使用此注释取代 @WebServiceRef 注释时,会应用针对 @WebServiceRef 注释描述的规则。 |
|
javax.annotation. Resources |
@Resources 注释会将多个 @Resource 注释与特定的类相关联,并充当多个资源声明的容器。 |
|
javax.annotation. PostConstruct |
@PostConstruct 注释标记需要在对类执行依赖性注入之后才运行的方法。 将此注释应用于 JAX-WS 应用程序处理程序或服务器端点实现类。 |
|
javax.annotation. PreDestroy |
@PreDestroy 注释标记在容器移除实例时必须运行的方法。 将此注释应用于 JAX-WS 应用程序处理程序或服务器端点实现类。 |
|
| 注释类 | 注释 | 属性 |
|---|---|---|
com.ibm.websphere. wsaddressing. jaxws21. SubmissionAddressing
|
@SubmissionAddressing 注释指定此服务需要对 2004/08 WS-Addressing 规范启用 WS-Addressing 支持。 此注释是 JAX-WS 2.1 规范的 IBM 实现的一部分。 将此注释应用于服务器端点实现类上的方法。 |
|