Я использую IIB 10.0.0.11
Когда я звоню в службу SOAP с этим сообщением:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap="urn://hfgroup.co.ke/SharedResources/Schemas/SOAMessages/SoapHeader" xmlns:com="urn://hfgroup.co.ke/Common/DataModel/Common/SecureGetBusinessDate/1.0/Common.SecureGetBusinessDate" xmlns:ns="urn://hfgroup.co.ke/CanonicalDataModel/Security/1.0">
<soapenv:Header>
<soap:HeaderRequest>
<soap:Control>
<soap:RequesterSystemCode>013</soap:RequesterSystemCode>
<soap:MessageID>45</soap:MessageID>
</soap:Control>
<soap:Credentials>
<soap:Credential>
<soap:Username>ESBAPP01</soap:Username>
<soap:Password>!@#$_!K@O#C$E%L^A*_$#@!</soap:Password>
</soap:Credential>
</soap:Credentials>
</soap:HeaderRequest>
</soapenv:Header>
<soapenv:Body>
<com:DataInput>
<com:SecureGetBusinessDateInput>
<ns:Security>
<ns:ChannelId>99997</ns:ChannelId>
</ns:Security>
</com:SecureGetBusinessDateInput>
</com:DataInput>
</soapenv:Body>
</soapenv:Envelope>
все работает, как должно, но когда я получил это сообщение:
<NS1:Envelope xmlns:NS1="http://schemas.xmlsoap.org/soap/envelope/" >
<NS1:Header>
<NS2:HeaderRequest xmlns:NS2="urn://hfgroup.co.ke/SharedResources/Schemas/SOAMessages/SoapHeader">
<NS2:Control>
<NS2:RequesterSystemCode>013</NS2:RequesterSystemCode>
<NS2:MessageID>49</NS2:MessageID>
</NS2:Control>
<NS2:Credentials>
<NS2:Credential>
<NS2:Username>ESBAPP01</NS2:Username>
<NS2:Password>!@#$_!K@O#C$E%L^A*_$#@!</NS2:Password>
</NS2:Credential>
</NS2:Credentials>
</NS2:HeaderRequest>
</NS1:Header>
<NS1:Body>
<NS3:DataInput xmlns:NS3="urn://hfgroup.co.ke/Common/DataModel/Common/SecureGetBusinessDate/1.0/Common.SecureGetBusinessDate">
<NS3:SecureGetBusinessDateInput>
<NS4:Security xmlns:NS4="urn://hfgroup.co.ke/CanonicalDataModel/Security/1.0">
<NS4:ChannelId>99997</NS4:ChannelId>
</NS4:Security>
</NS3:SecureGetBusinessDateInput>
</NS3:DataInput>
</NS1:Body>
</NS1:Envelope>
IIB превратит префикс NS3 и NS4 в поле, и позже в сервисе появятся ошибки:
переменные дерева в отладке:
SOAP
Context
Namespace
NS1:CHARACTER:http://schemas.xmlsoap.org/soap/envelope/
Body
DataInput
NS3:CHARACTER:urn://hfgroup.co.ke/Common/DataModel/Common/SecureGetBusinessDate/1.0/Common.SecureGetBusinessDate
SecureGetBusinessDateInput
Security
NS4:CHARACTER:urn://hfgroup.co.ke/CanonicalDataModel/Security/1.0
ChannelId:CHARACTER:99997
howЯ могу решить эту проблему из-за отсутствия префикса в качестве поля?
журнал того, что отправляется службе:
0x03000102:NamespaceDecl):xmlns = 'urn://hfgroup.co.ke/Common/DataModel/Common/GetBusinessDate/1.0/Common.GetBusinessDate' (CHARACTER)
(0x03000102:NamespaceDecl)xmlns:nsS100 = 'urn://hfgroup.co.ke/CanonicalDataModel/Security/1.0' (CHARACTER)
(0x03000102:NamespaceDecl)xmlns:soapenv = 'http://schemas.xmlsoap.org/soap/envelope/' (CHARACTER)
(0x01000000:Folder )http://schemas.xmlsoap.org/soap/envelope/:Body = (
(0x01000000:Folder)urn://hfgroup.co.ke/Common/DataModel/Common/GetBusinessDate/1.0/Common.GetBusinessDate:DataInput = (
(0x01000000:Folder)urn://hfgroup.co.ke/Common/DataModel/Common/GetBusinessDate/1.0/Common.GetBusinessDate:GetBusinessDateInput = (
(0x01000000:Folder)urn://hfgroup.co.ke/CanonicalDataModel/Security/1.0:Security = (
(0x03000000:PCDataField)http://www.w3.org/2000/xmlns/:NS4 = 'urn://hfgroup.co.ke/CanonicalDataModel/Security/1.0' (CHARACTER)
(0x03000000:PCDataField)urn://hfgroup.co.ke/CanonicalDataModel/Security/1.0:ChannelId = '99997' (CHARACTER)
(0x03000000:PCDataField)urn://hfgroup.co.ke/CanonicalDataModel/Security/1.0:CoreToken = 'Z]XWVUTSr>P<NW>Mw;MZ' (CHARACTER)
)
)
)