我无法使用Web Service Transformer通过DataStage调用WS。后端告诉我,由于消息格式与预期不同,请求失败。
期望类似:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://myNameSpace/">
<soapenv:Header/>
<soapenv:Body>
<ns1:mySoapAction>
<mySoapActionRequest>
<serviceContext>
<correlationId>Test</correlationId>
</serviceContext>
<myParam1>21</myParam1>
<myParam2>814</myParam2>
<myParam3>SVIL_2</myParam3>
</mySoapActionRequest>
</ns1:mySoapAction>
</soapenv:Body>
</soapenv:Envelope>
DataStage发送类似以下内容的
<Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.xmlsoap.org/soap/envelope/">
<Body xmlns="http://schemas.xmlsoap.org/soap/envelope/">
<ns1:mySoapAction xmlns:ns1="http://myNameSpace/">
<mySoapActionRequest xmlns="">
<serviceContext><correlationId>Test</correlationId></serviceContext>
<myParam1>21</myParam1>
<myParam2>814</myParam2>
<myParam3>SVIL_2</myParam3>
</mySoapActionRequest>
</ns1:mySoapAction>
</Body>
</Envelope>
奇怪的是,即使我使用的“用户定义消息”恰好传递了第一个示例,也会发生这种情况。
现在,我读了另一个类似问题的主题: Is SOAP 1.1 envelope without namespace prefixes valid one?
并且我得出结论,服务器应该能够处理完请求,但是后端人员无法修复它,因此唯一的方法是强制DataStage使用他们期望的格式。 / p>
非常感谢!