对于 JAX-WS 应用程序,您可以通过编辑此应用程序的部署描述符,在打包服务或客户机应用程序期间启用 WS-Addressing 支持。
关于此任务
要使用部署描述符修改 WS-Addressing 行为,请将 <addressing> 元素添加到该应用程序的部署描述符文件中。<addressing> 元素具有可选子元素,如下表所述。
<addressing> 元素的工作方式与寻址注释相同。<addressing> 注释的子元素的工作方式与寻址注释的参数相同。
表 1. addressing 部署描述符元素的子元素. 该表列出了各个子元素以及其可能的值和每个子元素的描述。元素名称 |
可能的值 |
描述 |
已启用 |
true(缺省值)
false
|
是否启用 WS-Addressing 支持。 |
required |
true
false(缺省值)
|
是否需要 WS-Addressing 头。 |
responses |
All(缺省值)
ANONYMOUS
NON_ANONYMOUS
|
使用同步还是异步消息交换模式。指定 ANONYMOUS 以通过同步消息模式发送消息;使用 NON_ANONYMOUS 以通过异步消息交换模式发送消息。 |
过程
- 要在服务应用程序中修改 WS-Addressing 支持的行为,请将 <addressing> 元素添加到 <webservice-description> 元素的 <port-component> 元素下的服务部署描述符,并根据需要添加可选子元素。 在以下示例中,寻址部署描述符片段指定启用且需要 WS-Addressing,并且使用异步消息交换模式。
<port-component>
<port-component-name>MyPort1</port-component-name>
<addressing>
<enabled>true</enabled>
<required>true</required>
<responses>NON_ANONYMOUS</responses>
</addressing>
<service-impl-bean>
<servlet-link>MyPort1ImplBean</servlet-link>
</service-impl-bean>
</port-component>
- 要在客户机应用程序中修改 WS-Addressing 支持的行为,请将 <addressing> 元素添加到 <service-ref> 元素的 <port-component-ref> 元素下的客户机部署描述符,并根据需要添加可选子元素。 例如,以下部署描述符片段指示 WS-Addressing 已启用:
<service-ref>
<service-ref-name>service/MyPortComponentRef</service-ref-name>
<service-interface>com.example.MyService</service-ref-interface>
<port-component-ref>
<service-endpoint-interface>com.example.MyPortType</service-endpoint-interface>
<addressing>
<enabled>true</enabled>
</addressing>
</port-component-ref>
</service-ref>
结果
现在,SOAP 消息头包含 WS-Addressing 属性,服务器在接收消息时将处理这些属性。