Это правило помечает вызовы методов, извлекающих строки и ошибки SOAP. Строки и коды ошибок по умолчанию, возвращаемые средами выполнения веб-служб, изменились в WebSphere Application Server 8.
Помечаются следующие методы:
Изменения строк и кодов ошибок по умолчанию имеют цель устранить потенциальную уязвимость, связанную с веб-службами, использующими шифрование XML. В рамках этого исправления подробная информация удалена из всех сбоев SOAP, генерируемых средой выполнения веб-служб. В версии 8 по умолчанию среды выполнения веб-служб объединяют все ошибки, генерируемые средой выполнения, в один тип ошибки, содержащий код ошибки soapenv:Server и строку ошибки Внутренняя ошибка.
Если приложению нужна подробная информация из строк или кодов ошибок среды выполнения, то может потребоваться изменение приложения. Также доступно пользовательское свойство виртуальной машины Java webservices.unify.faults для изменения поведения по умолчанию. Для того чтобы вернуть поведение предыдущего выпуска, укажите в свойстве webservices.unify.faults значение false.
До WebSphere Application Server 8 поведением по умолчанию был возврат подробной информации в строке или коде ошибки. Это было исправлено и в потоках служб, включая выпуски 6.0.2, 6.1 и 7.0, но поведение по умолчанию в этих выпусках осталось прежним. Для обслуживающих выпусков webservices.unify.faults имеет значение по умолчанию false. Поменяйте это значение на true, чтобы получить в этих выпусках такое же поведение, как в версии 8.
Пример JAX-WS:|
import javax.xml.ws.soap.SOAPFaultException; import javax.xml.ws.soap.SOAPFault; try { // код, вызывающий ошибку ... } 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 { // код, вызывающий ошибку ... } catch (SOAPFaultException e) { QName faultCode = e.getFaultCode(); String faultString = e.getFaultString(); ... } |
В обоих примерах вызовы методов getFaultCode() и getFaultString() помечаются.
Дополнительная информация: