我今天遇到一个奇怪的,它是这样的:
我正在为我的一个 Web 服务设置测试套件,它是用 PHP5 编写的 - 使用SoapFault类等。
我使用该类向客户端返回错误消息。例子:
if (!$this->CheckHost(getenv('REMOTE_ADDR')))
{
return new SoapFault(S_CLIENT, S_STRING_IP, "", S_DETAIL_IP);
}
如果客户端未获得授权,则返回 SoapFault...
现在,如果我在soapUI 3.0.1中添加模式合规性断言,它会告诉我返回的消息不符合它的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 错误消息是:
具有纯元素内容类型的元素“详细信息”不能包含文本内容。
有没有人暗示我做错了什么?
蒂亚
ķ