cloudhub通知的有效负载中缺少XML标记

时间:2016-04-01 07:48:25

标签: xml mule anypoint-studio cloudhub

我们正在使用cloudhub通知,以便在出现异常时收到邮件提醒。我们将XML有效负载作为电子邮件消息的一部分。我们收到邮件但缺少XML标签。

配置

<cloudhub:create-notification   domain="${mule.cloudhub.domain}"
          config-ref="Cloudhub" message="#[payload]"
          priority="ERROR"      doc:name="Cloudhub"/>

预期

<books>
  <book>
    <title>title1</title>
    <price>price1</price>
  </book>
 </books>

实际

  title1 price1

2 个答案:

答案 0 :(得分:0)

这只是我做的一个解决方法。不确定它是否是正确的方法,但它适用于我。添加

&lt;expression-component doc:name="Expression"&gt;&lt;![CDATA[payload=payload.replace('>','&#38;gt;');
    payload=payload.replace('<','&#38;lt;');]]>&lt;/expression-component &gt;

在cloudhub连接器之前更改有效负载,以便应用xml转义字符

答案 1 :(得分:0)

尝试在Chrome和IE中打开XML文件时,我遇到了类似的问题。我发现如果XML文件太大(例如37兆),则该文件将打开,但XML标记将丢失。它只会显示标签内的数据。例如,我希望它在浏览器中看起来像这样:

<ns0:quality>17</ns0:quality>
<ns0:duration>900</ns0:duration>

但是,它将显示为

17900
在浏览器中

。您的解决方案是减小XML文件的大小,然后显示标签。 (此外,如果计算机内存不足(通过重新启动即可解决),我已经看到过这种情况。)