0

我将此请求发送到我的网络服务(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>

我收到带有以下有效负载的“错误请求”:

<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。我在应用程序的调试输出中也没有看到任何错误。

有人可以建议如何调试吗?

4

1 回答 1

0

这是我测试中传入数据包格式的问题。问题是以下 VALUE 中的空间:

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

(注意 uuid: 字符串后面的空格)。

一旦我删除了空间,事情就很好了。错误信息具有误导性;所有的标题元素都在那里,一个只是价值不高。

于 2015-05-07T03:53:04.130 回答