该行为在 WebSphere Application Server V8 中,就如何在 JAX-WS 分派客户机的出站消息上确定 SOAP Action 设置方面已发生更改。 在 V8 之前的发行版中,如果分派客户机应用程序未提供 SOAP Action,那么 JAX-WS 运行时环境就无法在出站消息上发送正确的 SOAP Action。 相反地,它会将操作设为匿名操作。 现在,在 V8 中,如果客户机应用程序未提供 SOAP Action,那么 JAX-WS 运行时环境将解析外发消息以确定所调用的操作,并使用该操作来确定 SOAP Action 的相应值。
在下列情况下,此规则会标记为了建立分派客户机而进行的调用:
WebSphere Application Server Traditional 和 Liberty 供客户机应用程序提供带有 JAX-WS 的 SOAP 操作 javax.xml.ws.BindingProvider 属性 SOAPACTION_USE_PROPERTY And the SOAPACTION_URI_PROPERTY 我不知道 将使用提供的 SOAP 操作,无论设置如何,都不会对出站消息进行解析。 DISPATCH_CLIENT_OUTBOUND_RESOLUTION 属性。
本示例显示了请求上下文上设置了 SOAP Action 的最佳实践代码。 如果 SOAPACTION_URI_PROPERTY 未设置或如果 SOAPACTION_USE_PROPERTY 设置为 false ,来电 createDispatch() 此规则将标记此方法。
例如:因为此解析的成本可能很高,所以可以在 WebSphere Application Server Traditional 上,在系统级别设置属性(以始终禁用此解析)或在 JAX-WS 请求消息上下文上设置属性(以逐个消息地禁用此解析)。 如果禁用了解析,那么出站消息中的 SOAP Action 将继续像以前那样设为匿名操作。 禁用属性定义为常量 org.apache.axis2.jaxws.Constants.DISPATCH_CLIENT_OUTBOUND_RESOLUTION 字符串值为 jaxws.dispatch.outbound.operation.resolution.enable . 如果未设置此属性,那么会将其解释为字符串 true ,启用出站操作解析。 将属性设置为 false 将禁用出站操作解析。
有关更多信息,请参阅: