2015-05-06 6 views
0

Я посылаю этот запрос на мой веб-сервиса (весна-загрузки 1.2.3):Весна - MessageAddressingHeaderRequired

<?xml version="1.0"?> 
<s:Envelope xmlns:a="http://www.w3.org/2005/08/addressing" xmlns:s="http://www.w3.org/2003/05/soap-envelope"> 
    <s:Header> 
     <a:Action s:mustUnderstand="1"> 
      http://schemas.microsoft.com/windows/management/2012/01/enrollment/IDiscoveryService/Discover 
     </a:Action> 
     <a:MessageID>urn:uuid: 748132ec-a575-4329-b01b-6171a9cf8478</a:MessageID> 
     <a:ReplyTo> 
      <a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address> 
     </a:ReplyTo> 
     <a:To s:mustUnderstand="1"> 
      https://ENROLLTEST.CONTOSO.COM/EnrollmentServer/Discovery.svc 
     </a:To> 


    </s:Header> 
    <s:Body> 
     <Discover xmlns="http://schemas.microsoft.com/windows/management/2012/01/enrollment"> 
      <request xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
       <EmailAddress>user[email protected]</EmailAddress> 
       <RequestVersion></RequestVersion> 
      </request> 
     </Discover> 
    </s:Body> 
</s:Envelope> 

И я получаю "Bad Request" со следующей полезной нагрузки:

<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"> 
    <env:Header xmlns:wsa="http://www.w3.org/2005/08/addressing"> 
     <wsa:To env:mustUnderstand="true">http://www.w3.org/2005/08/addressing/anonymous</wsa:To> 
     <wsa:Action> 
      http://schemas.microsoft.com/windows/management/2012/01/enrollment/IDiscoveryService/DiscoverResponse 
     </wsa:Action> 
     <wsa:MessageID>urn:uuid:c2d7c83d-2c87-4769-84b3-07e77b53028d</wsa:MessageID> 
    </env:Header> 
    <env:Body> 
     <env:Fault> 
      <env:Code> 
       <env:Value>env:Sender</env:Value> 
       <env:Subcode> 
        <env:Value xmlns:wsa="http://www.w3.org/2005/08/addressing">wsa:MessageAddressingHeaderRequired 
        </env:Value> 
       </env:Subcode> 
      </env:Code> 
      <env:Reason> 
       <env:Text xml:lang="en">A required header representing a Message Addressing Property is not present 
       </env:Text> 
      </env:Reason> 
     </env:Fault> 
    </env:Body> 
</env:Envelope> 

Я не понимаю, о чем он жалуется. Прежде всего, требуемые поля есть (и я даже набрал другие опционные фиалы вручную, безрезультатно).

Во-вторых, это не включает в себя поле детали в ошибке, которое обычно указывает на недостающее QName, о котором он жалуется. Я также не вижу ошибок в отладочном выходе приложения.

Может кто-нибудь предложить, как отладить это?

ответ

0

Это была проблема с форматом входящего пакета в моем тесте. Проблема заключалась в том пространство в значении следующий:

<a:MessageID>urn:uuid: 748132ec-a575-4329-b01b-6171a9cf8478</a:MessageID> 

(обратите внимание на пробел после UUID: строка).

Как только я удалил место, все будет хорошо. Сообщение об ошибке вводит в заблуждение; все элементы заголовка были там, у одного было просто плохое значение.