我正在尝试在 ESB 中编写一个序列并使用有效负载工厂填充我的有效负载数据,如下面的示例所述。
<payloadFactory>
<format>
<p:echoInt xmlns:p="http://echo.services.core.carbon.wso2.org">
<in xmlns="">$1</in>
</p:echoInt>
</format>
<args>
<arg xmlns:ns="http://org.apache.synapse/xsd" expression="an-xml-formatted-string"/>
</args>
</payloadFactory>
<send>
<endpoint>
<address uri="http://noon101:8280/services/echo" format="soap11"/>
</endpoint>
</send>
因为当我将此有效负载发送到服务时,我的字符串被格式化为 xml,所以服务会尝试解析我的 xml 参数并且(我不明白确切原因是什么)我的 Web 服务方法没有被调用。在这个链接中,它说如果我使用 cdata,解析器将不会解析我的 xml 格式的字符串,也不会有问题。
但问题是 Payload Factory 调解器在其内容中不接受 Cdata。当我如下所示编写 Payload Factory 的配置时,它会从中删除 CDATA 关键字,问题就出现了。
<payloadFactory>
<format>
<p:echoInt xmlns:p="http://echo.services.core.carbon.wso2.org">
<in xmlns=""> <![CDATA[ $1 ]]> </in>
</p:echoInt>
</format>
<args>
<arg xmlns:ns="http://org.apache.synapse/xsd" expression="an-xml-formatted-string"/>
</args>
</payloadFactory>
这个问题的解决方案是什么?任何其他设置有效负载或任何解决方法的中介将不胜感激。