Web Service 寻址注释

WS-Addressing 规范提供了传输中立的机制来对 Web Service 进行寻址,以帮助进行端对端寻址。如果有 JAX-WS 应用程序,那么您可以在代码中使用 Java 注释来指定运行时的 WS-Addressing 行为。

您可以使用 WS-Addressing 注释以启用 WS-Addressing 支持,指定入站消息中是否需要 WS-Addressing 信息,控制服务支持的消息交换模式以及指定要与 Web Service 操作或故障响应关联的操作。

WebSphere® Application Server 支持以下 WS-Addressing 注释。这些注释在 JAX-WS 2.2 规范中进行定义,除非另有说明。JAX-WS 2.2 规范将取代 JAX-WS 2.1 规范并包括此规范的功能。请参阅 Java API for XML-Based Web Services 2.2 规范,以获取完整详细信息。
javax.xml.ws.Action
指定与 Web Service 操作相关联的操作。
  • 当执行自底向上方法来开发 JAX-WS Web Service 时,您可以使用 wsgen 命令行工具从 Java 应用程序代码生成 WSDL 文档。对于添加到 WSDL 操作的此属性,您还必须对实现类指定 @Addressing 注释。生成的 WSDL 文档中的结果是“操作”注释将在 wsdl:operationinput messageoutput message 元素上具有 wsam:Action 属性。 或者,如果不想使用 @Addressing 注释,那么可以提供您自己的已定义“操作”属性的 WSDL 文档。
  • 当执行自上而下方法来开发 JAX-WS Web Service 时,您可以使用 wsimport 命令行工具从现有 WSDL 文档生成 Java 应用程序代码。在这种情况下,生成的 Java 代码将包含正确的“操作”和 FaultAction 注释。
如果此操作在代码注释或 WSDL 文档中未指定,那么会使用 Web Services Addressing 1.0 元数据规范中定义的缺省操作模式。请参阅此规范,以获取完整详细信息。
注: 虽然 WebSphere Application Server 运行时环境支持不推荐的 wsaw:Action 属性,但是,如果尝试从包含不推荐的 wsaw:Action 属性的旧 WSDL 文档生成 Java 代码,那么会忽略此属性。
javax.xml.ws.FaultAction
指定添加到某缺省响应的操作。如果您将此注释与特定方法配合使用,那么会将 WS-Addressing FaultAction 扩展属性添加到与该方法对应的 WSDL 操作的 fault 元素。对于添加到 WSDL 操作的此属性,您还必须对实现类指定寻址注释。如果不想使用寻址注释,那么可以提供您自己的且已经定义的带有“操作”属性的 WSDL 文档。该注释必须包含在“操作”注释中。
从包含 WS-Addressing FaultAction 注释的 Java 应用程序代码生成的 WSDL 文档将在 wsdl:operationfault message 元素上具有 wsam:Action 属性。
注: 要确保您写入的任何定制“异常”类成功映射到生成的 WSDL 文档,请扩展 java.lang.Exception 类,而不是 java.lang.RuntimeException 类。
javax.xml.ws.soap.Addressing
对该服务要启用 WS-Addressing 支持进行指定。在服务实现 Bean 中您只能使用此注释;在服务端点接口不能使用此注释。
com.ibm.websphere.wsaddressing.jaxws21.SubmissionAddressing
此注释是 JAX-WS 规范的 IBM 实现的一部分。 此注释对该服务要启用 2004/08 WS-Addressing 规范的 WS-Addressing 支持进行指定。在服务实现 Bean 中您只能使用此注释;在服务端点接口不能使用此注释。

有关寻址注释和 SubmissionAddressing 注释(包括代码示例)的更多信息,请参阅使用寻址注释对 JAX-WS 应用程序启用 Web Service 寻址支持

下列示例代码使用“操作”注释来定义要进行调用的调用操作 (input), 并定义添加到响应消息的操作 (output)。 如果缺省发生下列情况,那么该示例还使用 FaultAction 注释对添加到响应消息的操作进行指定:
@WebService(name = "Calculator")
public interface Calculator {
   ...
  	 @Action(
      input="http://calculator.com/inputAction",
      output="http://calculator.com/outputAction",
      fault = { @FaultAction(className=AddNumbersException.class, 
                value="http://calculator.com/faultAction") 
      }
   )
   public int add(int value1, int value2) throws AddNumbersException {
      return value1 + value2;
   }
}
如果您使用工具从代码生成服务工件,那么在先前示例中生成的 WSDL 标记如下所示:
<definitions targetNamespace="http://example.com/numbers" ...>
   ...
   <portType name="AddPortType">
      <operation name="Add">
         <input message="tns:AddInput" name="Parameters"
                         wsam:Action="http://calculator.com/inputAction"/>
         <output message="tns:AddOutput" name="Result"
           	               wsam:Action="http://calculator.com/outputAction"/>
         <fault message="tns:AddNumbersException" name="AddNumbersException"
           	              wsam:Action="http://calculator.com/faultAction"/>
      </operation>
    <portType>
    ...
<definitions>

指示主题类型的图标 概念主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwbs_wsa_annots
文件名:cwbs_wsa_annots.html