0

I am sending this request to my web service (spring-boot 1.2.3):

<?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@contoso.com</EmailAddress>
                <RequestVersion></RequestVersion>
            </request>
        </Discover>
    </s:Body>
</s:Envelope>

And I receive "Bad Request" with the following payload:

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

I am at a loss as to what it is complaining about. First of all, the required fields are there (and I even typed in the other optional fiels by hand, to no avail).

Second, it's not including a detail field in the error, which normally would indicate the missing QName that it's complaining about. I see no errors in the application's debug output either.

Could someone suggest how to debug this?

Will I Am
  • 2,614
  • 3
  • 35
  • 61

1 Answers1

0

It was an issue with the format of the incoming packet in my test. The problem was the space in the VALUE of the following:

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

(note the space after the uuid: string).

Once I removed the space, things are good. The error message is misleading; all the header elements were there, one just had a bad value.

Will I Am
  • 2,614
  • 3
  • 35
  • 61