2013-12-10 53 views
0

我已经使用WSO2ESBs WSDL-Endpoint设置了对SOAP webservice的调用。不幸的是,响应包含一个base64编码的字符串,而不是普通的XML文档。wso2esb:SOAP调用返回base64编码数据

此字符串包含在< 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

我想你会收到二进制消息()..使用builder mediator来构建消息。 如:

<sequence name="buildseq"> 
    <builder> 
     <messageBuilder contentType="XXX" class="XXX" 
         formatterClass="XXX"/> 
     <messageBuilder contentType="XXX" class="XXX" 
         formatterClass="XXX"/> 
    </builder> 
</sequence> 
+0

融入我的outsequence部署期间使我异常建立调解员(_org.apache.synapse.SynapseException:通过配置元素引用了未知调解员:builder_)。 – user3087341