我需要与网络服务进行通信,但需要传递许可证密钥。
我生成了模式但我的映射要求我映射到" OrderInfoObject"节点
我尝试创建一个映射,使用许可证密钥添加soap信封,这会创建代码,当我将其复制到soapUI但得到双重封装(<soapenv:Envelope><soapenv:Body><soapenv:Envelope><soapenv:Body>
)时,即使我将入站邮件正文设置为Envelope - - 整个来自身体 - 内容。
所以我的映射有以下
<wms:OrderInfoObject>
...
</wms:OrderInfoObject>
发送端口在soap的主体中添加了
<soapenv:Envelope xmlns:soapenv="..." xmlns:wms="...">
<soapenv:Header>
</soapenv:Header>
<soapenv:Body>
-- Here comes my message --
</soapenv:Body>
</soapenv:Envelope>
发送端口是通过使用WSDL生成的,所以我对它的工作原理没有信心但是Header似乎遥不可及。
所以我不确定如何添加许可证密钥。
答案 0 :(得分:1)
您专注于LicenseKey的错误外观。您需要在OrderInfoObject下的某处找到后代实现。
Schema不太可能出现任何问题,因为任何数字元素都可以在根目录中定义,然后在“真实”下的某个地方引用。根元素。
要清理东西,可以将此Schema上的Root Reference设置为OrderInfoObject,然后将所有&#39; Type&#39;元素将被隐藏。
但是,如果LicenseKey需要是SOAP Header元素,您可以使用WCF.OutboundCustomHeaders属性向该部分添加元素。
此MSDN文章介绍了该过程:Using SOAP Headers in WCF Messages with Orchestrations