如何获得SOAP错误消息以符合WS-I

时间:2010-07-22 20:50:29

标签: soap soapui

我有这条消息

 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
     <soapenv:Body>
     <soapenv:Fault>
        <faultcode>soapenv:Server</faultcode>
        <faultstring>LOGIN-ERR:Incorrect password - user could not be logged in.</faultstring>
       </soapenv:Fault>
     </soapenv:Body>
   </soapenv:Envelope>

Schema验证正常,但是SOAP UI工具,当点击“Check WS-I Compliance”时,它给出了BP1305断言失败的失败状态。我找不到1305是什么,这是详细的消息

Result
  failed
  Failure Detail Message
  HTTP/1.1 200 OK
  Transfer-Encoding: chunked
  Date: Thu, 22 Jul 2010 20:41:43 GMT
  Set-Cookie: JSESSIONID=C9D19FE6AAD89DFCB6BA9FE196E08D40; Path=/
  Content-Type: text/xml;charset=utf-8
  Server: Apache-Coyote/1.1
  Element Location:
      lineNumber=26

2 个答案:

答案 0 :(得分:3)

问题似乎是您正在返回SOAP Fault消息,但HTTP状态代码为200,因此需要使用HTTP状态代码500发送SOAP Fault。

答案 1 :(得分:0)

您缺少故障消息中的detail元素。如果wsdl错误是作为请求中body元素内容的结果而生成的,那么它是必需的元素

消息应该是这样的(详细信息元素应该包含特定于应用程序的信息。但是可以接受为空。不容错过):

 <soapenv:Fault>
   <faultcode>soapenv:Server</faultcode>
   <faultstring>LOGIN-ERR:Incorrect password - user could not be logged in.</faultstring>
   <detail></detail>
  </soapenv:Fault>