我奇怪今天一碰上了,它是这样的:

我设立测试套件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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top