通过WSO2 esb中的Payload Mediator传递所有默认响应值

时间:2014-10-16 07:35:49

标签: wsdl wso2 wso2esb mediator wso2developerstudio

我在部署在WSO2 ESB上的代理服务中使用有效负载中介来将旧值映射到新值。它工作正常,但它只显示我已经转换的值。我希望它也能显示其余的响应。无论如何使用有效载荷调解器或任何其他调解器来做到这一点?

WSDL:

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="Person_Proxy"
       transports="https,http"
       statistics="disable"
       trace="disable"
       startOnLoad="true">
   <target>
      <inSequence>
         <send>
            <endpoint>
               <address uri="http://www.example.com/xsd/Person_01_RequestResponse_001"/>
            </endpoint>
         </send>
      </inSequence>
      <outSequence>
         <payloadFactory media-type="xml">
            <format>
               <m:GetPersonResponse xmlns:m="http://example.com/TimeWriter/Person">
                  <m:NationalIdentityNumber>$1</m:NationalIdentityNumber>
                  <m:CountryCode>$2</m:CountryCode>
                  <m:FirstName>$3</m:FirstName>
                  <m:LastName>$4</m:LastName>
                  <m:HomePhone>$5</m:HomePhone>
               </m:GetPersonResponse>
            </format>
            <args>
               <arg xmlns:m0="http://www.example.com/xsd/Person_01"
                    evaluator="xml"
                    expression="//m0:CNIC"/>
               <arg xmlns:m0="http://www.example.com/xsd/Person_01"
                    evaluator="xml"
                    expression="//m0:Country"/>
               <arg xmlns:m0="http://www.example.com/xsd/Person_01"
                    evaluator="xml"
                    expression="//m0:FirstName"/>
               <arg xmlns:m0="http://www.example.com/xsd/Person_01"
                    evaluator="xml"
                    expression="//m0:LastName"/>
               <arg xmlns:m0="http://www.example.com/xsd/Person_01"
                    evaluator="xml"
                    expression="//m0:HomePhone"/>
            </args>
         </payloadFactory>
         <send/>
      </outSequence>
      <endpoint>
         <address uri="http://localhost:8080/Person_01/services/PersonSOAP"/>
      </endpoint>
   </target>
   <description/>
</proxy>

我现在只获得了四个属性,我已明确转换过。我也想要其他属性。我正在使用SoapUI工具来测试这项服务。

1 个答案:

答案 0 :(得分:1)

您可以尝试多种选项,即使用xslt介体,脚本介体,或者您可以拥有自己的自定义介体来实现此转换逻辑。如果你只计划使用有效载荷中介,你必须修改有效载荷工厂以包含所有内容,它只输出你在“格式”标签之间指定的内容而已。