Сегодня я столкнулся со странным, он выглядит так:
Я устанавливаю тестовые наборы для QAing моего веб-сервиса, написанного на PHP5 - с использованием класса SoapFault среди других.
Я использую класс для возврата сообщения об ошибке клиентам.Пример:
if (!$this->CheckHost(getenv('REMOTE_ADDR')))
{
return new SoapFault(S_CLIENT, S_STRING_IP, "", S_DETAIL_IP);
}
Возврат SoapFault, если клиент не авторизован ...
Теперь, если я добавлю утверждение соответствия схемы в soapUI 3.0.1 itговорит мне, что возвращенное сообщение не соответствует его wsdl-файлу.
WSDL-файл написан мной и фактически не содержит описания фактического класса SoapFault.Это будет необходимо?Думал не потому, что SoapFault в любом случае специфицирован в Soap 1.1.
Фактический ответ выглядит так:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Client</faultcode>
<faultstring>ERR_102</faultstring>
<faultactor/>
<detail>IP error message</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Сообщение об ошибке soapUI:
Элемент 'detail 'с типом содержимого только для элементов не может иметь текстового содержимого.
У кого-нибудь есть подсказка, что я делаю неправильно?
tia
K