我已使用WSO2ESBs WSDL-Endpoint设置了对SOAP Web服务的调用。不幸的是,响应包含base64编码的字符串而不是纯XML文档。
此字符串包含在< axis2ns1:binary xmlns:axis2ns1 =“http://ws.apache.org/commons/ns/payload”>标签
如何修改端点和/或代理以XML格式接收响应?
亲切的问候,
马克
对服务的请求如下所示:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:bas="http://sap.com/xi/BASIS">
<soapenv:Header/>
<soapenv:Body>
<bas:ConfigurationScenarioQueryRequest>
<ConfigurationScenarioID>EOI_CS_OBI*</ConfigurationScenarioID>
</bas:ConfigurationScenarioQueryRequest>
</soapenv:Body>
</soapenv:Envelope>
WSO2收到的回复如下:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<axis2ns1:binary xmlns:axis2ns1="http://ws.apache.org/commons/ns/payload">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48U09BUC1FTlY6RW52ZWxvcGUgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczpTT0FQLUVOVj0iaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvc29hcC9lbnZlbG9wZS8iIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPjxTT0FQLUVOVjpCb2R5PjxuczI6Q29uZmlndXJhdGlvblNjZW5hcmlvUXVlcnlSZXNwb25zZSB4bWxuczpuczI9J2h0dHA6Ly9zYXAuY29tL3hpL0JBU0lTJz48Q29uZmlndXJhdGlvblNjZW5hcmlvSUQ+RU9JX0NTX09CSV9HTE9CRTwvQ29uZmlndXJhdGlvblNjZW5hcmlvSUQ+PENvbmZpZ3VyYXRpb25TY2VuYXJpb0lEPkVPSV9DU19PQklfR0xPQkVfQmVzdGFuZHNmdWVocnVuZzwvQ29uZmlndXJhdGlvblNjZW5hcmlvSUQ+PENvbmZpZ3VyYXRpb25TY2VuYXJpb0lEPkVPSV9DU19PQklfR0xPQkVfUE1BdWZ0cmFnPC9Db25maWd1cmF0aW9uU2NlbmFyaW9JRD48Q29uZmlndXJhdGlvblNjZW5hcmlvSUQ+RU9JX0NTX09CSV9HTE9CRV9FaW5rYXVmPC9Db25maWd1cmF0aW9uU2NlbmFyaW9JRD48TG9nTWVzc2FnZUNvbGxlY3Rpb24+PC9Mb2dNZXNzYWdlQ29sbGVjdGlvbj48L25zMjpDb25maWd1cmF0aW9uU2NlbmFyaW9RdWVyeVJlc3BvbnNlPjwvU09BUC1FTlY6Qm9keT48L1NPQVAtRU5WOkVudmVsb3BlPg==</axis2ns1:binary>
</soapenv:Body>
</soapenv:Envelope>
如果我通过SoapUI发送相同的请求,我会收到:
<SOAP-ENV:Envelope xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<ns2:ConfigurationScenarioQueryResponse xmlns:ns2="http://sap.com/xi/BASIS">
<ConfigurationScenarioID>EOI_CS_OBI_GLOBE</ConfigurationScenarioID>
<ConfigurationScenarioID>EOI_CS_OBI_GLOBE_Bestandsfuehrung</ConfigurationScenarioID>
<ConfigurationScenarioID>EOI_CS_OBI_GLOBE_PMAuftrag</ConfigurationScenarioID>
<ConfigurationScenarioID>EOI_CS_OBI_GLOBE_Einkauf</ConfigurationScenarioID>
<LogMessageCollection/>
</ns2:ConfigurationScenarioQueryResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
我希望WSO2ESB的行为与SoapUI相同。
答案 0 :(得分:0)
我认为您收到了二进制消息()..使用builder mediator来构建消息。 例如:
<sequence name="buildseq">
<builder>
<messageBuilder contentType="XXX" class="XXX"
formatterClass="XXX"/>
<messageBuilder contentType="XXX" class="XXX"
formatterClass="XXX"/>
</builder>
</sequence>