使用 WS-Policy 为 JAX-WS 应用程序启用 Web Service 寻址支持
对于 JAX-WS 应用程序,您可以通过将 WS-Policy 断言添加到 WSDL 文档,在客户机或服务应用程序的开发期间启用 WS-Addressing 支持。
关于此任务
JAX-WS 2.2 规范引入了可使应用程序 WSDL 文档中的 WS-Policy 断言映射到代码中的 Java™ 注释以及从后者映射到前者的功能。
提供了几种方法可为 JAX-WS 应用程序启用 WS-Addressing 支持。 使用 WS-Policy 的方法有效,除非具有更高优先级的其他方法覆盖了此方法,例如如果您正在使用 AddressingFeature 类或使用寻址注释。请参阅父主题:为 JAX-WS 应用程序启用 Web Service 寻址支持,以获取有关 WebSphere® Application Server 使用的优先顺序的完整详细信息。
如果您将寻址注释添加到提供程序代码,并使用 wsgen 命令行工具来生成 WSDL 文档,那么它将包含指定 WS-Addressing 支持的 WS-Policy 断言。但是,如果您正在查看提供程序服务的已发布 WSDL 文档,那么策略集中定义的策略可能会显示,因为这会覆盖代码中定义的任何注释。
如果您要使用现有 WSDL 文档来创建 Java 代码,那么当 WebSphere Application Server 读取 WSDL 时,如果显示了任何指定 WS-Addressing 支持的 WS-Policy 断言,生成的 Java 代码将包含寻址注释。
过程
结果
如果您将 WS-Addressing 注释添加到指定启用 WS-Addressing 的应用程序代码,那么在生成 WSDL 时,它将包含 WS-Policy 断言。
当指定 WS-Addressing 支持的 WS-Policy 断言包含在 WSDL 中时,WS-Addressing 头包含在生成的 SOAP 消息中。
如果您指定需要 WS-Addressing,并且收到的入站 SOAP 消息不包含任何 WS-Addressing 头,那么会发生异常。