PHP的SOAPFault无WSDL在soapUI的架构兼容?
-
20-09-2019 - |
题
我奇怪今天一碰上了,它是这样的:
我设立测试套件QAing矿的web服务,这是 写在PHP5 - 利用类的SOAPFault 等等的<。 / p>
我使用的类返回错误消息给客户端。例如:
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被spezified在肥皂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错误信息是:
元素“细节”与元件仅 内容类型不能有文本内容。
有没有人有一个暗示什么,我做错了吗?
TIA
ķ
解决方案
皂1.1 XML架构( http://schemas.xmlsoap.org/soap/envelope/ )细节元件定义为
<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>
...
希望这有助于!
的问候,
/ OLE eviware.com
不隶属于 StackOverflow