2013-12-10 3 views
0

WSO2ESB WSDL-Endpoint를 사용하여 SOAP 웹 서비스에 대한 호출을 설정했습니다. 불행히도 reponse에는 일반 XML 문서 대신 base64로 인코딩 된 문자열이 들어 있습니다.wso2esb : SOAP 호출이 base64 인코딩 된 데이터를 반환합니다.

이 문자열은 < 축 2ns1 : 이진 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