2013-12-10 49 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