我有3个不同服务返回的1..n个对象。我用Scatter-Gather调用了3个服务中的每个服务。我的聚合成了:
[
<?xml version='1.0' encoding='windows-1252'?>
<policy-group>
</policy>
</policy>
</policy-group>,
<?xml version='1.0' encoding='windows-1252'?>
<policy-group>
</policy>
</policy>
</policy-group>,
<?xml version='1.0' encoding='windows-1252'?>
<policy-group>
</policy>
</policy>
</policy-group>
]
字符串XML消息中的括号在我的Dataweave中导致错误。有谁知道如何解决这个问题?
我的错误是..
意外的角色&#39; [&#39; (代码91)prolog;预期&#39;&lt;&#39; at [row,col {unknown-source}]:[1,1](com.ctc.wstx.exc.WstxUnexpectedCharException)。
提前致谢。
答案 0 :(得分:0)
在Scatter-Gather之后添加Combine-Collection,它会将所有结果合并为一个。对于某些情况,如果未合并结果,则会出现问题。
答案 1 :(得分:0)
如果您不想使用变压器或写一些特殊代码来执行此操作。您可以像下面这样做
使用表达式组件
<expression-component doc:name="Expression"><![CDATA[
message.payload= org.mule.util.StringUtils.removeStart(message.payload,"[");
message.payload= org.mule.util.StringUtils.removeEnd(message.payload,"]");
]]>
</expression-component>
或者可以直接在Set Payload中执行
<set-payload value="#[message.payload= org.mule.util.StringUtils.removeStart(message.payload,"[");message.payload= org.mule.util.StringUtils.removeEnd(message.payload,"]")]" doc:name="Set Payload"/>