PHP SoapFault在soapUI中不符合WSDL模式?
我今天遇到了一个奇怪的,它是这样的:PHP SoapFault在soapUI中不符合WSDL模式?,php,web-services,wsdl,soapui,Php,Web Services,Wsdl,Soapui,我今天遇到了一个奇怪的,它是这样的: <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_
<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>
我正在为QAing我的一个web服务设置测试套件,它是
用PHP5编写-使用类等
我使用该类将错误消息返回给客户端。例如:
if (!$this->CheckHost(getenv('REMOTE_ADDR')))
{
return new SoapFault(S_CLIENT, S_STRING_IP, "", S_DETAIL_IP);
}
如果客户端未经授权,则返回SoapFault
现在,如果我在其中添加一个模式符合性断言
告诉我返回的消息不符合它的wsdl文件
WSDL文件由我编写,实际上不包含描述
实际SoapFault类的。需要吗?我想不是因为
SoapFault在SOAP1.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>
SOAP-ENV:客户端
错误102
IP错误消息
soapUI错误消息为:
仅包含元素的元素“详细信息”
内容类型不能包含文本内容
有人知道我做错了什么吗
短暂性脑缺血发作
Ksoap 1.1 xml模式()将细节元素定义为
<xs:complexType name="detail"><xs:sequence>
<xs:any namespace="##any" minOccurs="0" maxOccurs="unbounded" processContents="lax" />
</xs:sequence>
<xs:anyAttribute namespace="##any" processContents="lax" />
</xs:complexType>
这意味着它不能像你的错误那样只包含文本。尝试将响应更改为以下内容
...
<detail><msg>IP error message</msg></detail>
...
。。。
IP错误消息
...
希望这有帮助
问候,
/奥立
eviware.com谢谢你的回复,我试了一下,发现出于某种原因“.S\u SOAP\u FAULT\u DETAIL\u INVALID\u TICKET.”“get已转义到html ltMSGgt。。。soapUI会告诉我一个错误,说明“未执行的CDATA”。你知道如何传递错误细节吗?短暂性脑缺血发作