此规则会标记对用来检索 SOAP 故障和字符串的方法的调用。Web Service 运行时环境所返回的缺省故障代码和字符串在 WebSphere Application Server V8 中已发生更改。
具体而言,标记了下列方法:
更改缺省故障代码和字符串是为了修正与使用 XML 加密的 Web Service 相关的潜在安全漏洞。作为修正的一部分,从 Web Service 运行时环境所生成的任何 SOAP 故障中移除了详细信息。缺省情况下,在 V8 中,Web Service 运行时环境会使运行时环境所生成的所有故障统一成单一故障类型(包含故障代码 soapenv:Server 和故障字符串 Internal Error)。
如果应用程序期望运行时环境故障代码或字符串提供详细信息,那么您可能需要修改应用程序。您还可以使用 webservices.unify.faults Java 虚拟机定制属性来更改缺省行为。要还原为前发行版的行为,请将 webservices.unify.faults 设为 false。
在 WebSphere Application Server V8 之前,缺省行为是在故障代码或字符串中返回详细信息。此问题也已在服务流(包括 6.0.2、6.1 和 7.0)中修正,但这些发行版中的缺省行为保持不变。对于 Service Release,webservices.unify.faults 的缺省值为 false。在这些发行版中将该值更改为 true 以获取与 V8 相同的行为。
JAX-WS 示例:|
import javax.xml.ws.soap.SOAPFaultException; import javax.xml.ws.soap.SOAPFault; try { // some code that causes a fault ... } catch (SOAPFaultException e) { SOAPFault soapFault = e.getFault(); String faultCode = soapFault.getFaultCode(); String faultString = soapFault.getFaultString(); ... } |
|
import javax.xml.rpc.soap.SOAPFaultException; import javax.xml.namespace.QName; try { // some code that causes a fault ... } catch (SOAPFaultException e) { QName faultCode = e.getFaultCode(); String faultString = e.getFaultString(); ... } |
在这两个示例中,会标记对 getFaultCode() 和 getFaultString() 方法的调用。
有关更多信息,请参阅: