Как получить сообщение о сбое SOAP для соответствия WS-I - PullRequest
4 голосов
/ 23 июля 2010

У меня есть это сообщение

 <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>

Схема проверена нормально, но инструмент SOAP UI, когда нажимает «Проверить соответствие WS-I», выдает статус ошибки с ошибкой подтверждения 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 ]

3 голосов
/ 18 августа 2010

Кажется, проблема в том, что вы возвращаете сообщение об ошибке SOAP, но с кодом состояния HTTP 200, ошибки SOAP необходимо отправлять с кодом состояния HTTP 500.

0 голосов
/ 23 июля 2010

В вашем сообщении об ошибке отсутствует элемент детали. Это обязательный элемент, если ошибка wsdl возникает в результате содержимого элемента body в запросе

Сообщение должно быть таким (элемент detail должен содержать специфическую информацию приложения. Но допустимо быть пустым. Недопустимо отсутствовать):

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