我在部署在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工具来测试这项服务。
答案 0 :(得分:1)
您可以尝试多种选项,即使用xslt介体,脚本介体,或者您可以拥有自己的自定义介体来实现此转换逻辑。如果你只计划使用有效载荷中介,你必须修改有效载荷工厂以包含所有内容,它只输出你在“格式”标签之间指定的内容而已。