微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

xml – WSO2 ESB中有效负载工厂中的CDATA

我正在尝试在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服务方法未被调用.在这link中它说如果我使用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>

这个问题的解决方案是什么?任何其他设置有效载荷或任何变通方法的调解员将不胜感激.

解决方法

您可以使用XSLT介体(Payload工厂介体不支持CDATA).但是如果你使用它.此外,您还需要执行以下配置以在中介流中保留CDATA. [1]

这也会有所帮助.
http://tharindumathew.com/2012/05/24/adding-cdata-tags-through-xslt/

[1] http://blog.shelan.org/2013/03/how-to-send-cdata-inside-your-soap.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。