根据文档
ForEach不允许在序列中使用调用、发送和标注中介。
但是,如果将调用/发送/标注中介器放置在序列中,并在其中调用该序列,则可以在ForEach中介器中使用调用/发送/标注中介器,如下面的示例所示:
<!-- myProxy.xml -->
<for-each expression="//foo" >
<sequence>
<sequence key="myCallSequence"/>
</sequence>
</for-each>
<!-- myCallSequence.xml -->
<call>
<endpoint>
<address format="soap11" uri="http://my.uri.com"/>
</endpoint>
</call>我观察到,这可能会导致一些非常意外的结果,特别是在for与回调混合后的聚合有效载荷方面。
在处理这样一种情况时,我无意中发现了这一点:我必须拆分原始消息,并使用外部服务从分裂的部分验证一些数据,但如果验证成功,仍然需要对原始消息进行更多的处理。
这种配置是否被认为是一种糟糕的做法?如果是,为什么?
发布于 2017-06-12 07:04:18
只有在需要以迭代的方式(例如,数组)转换有效负载时,才应该使用ForEach中介器。ForEach中介器的实现不是为了支持调用后端。如果您需要实现这个用例,请使用迭代中介器,它允许您调用后端。更多信息请参考https://docs.wso2.com/display/EI611/Iterate+Mediator。
https://stackoverflow.com/questions/44461945
复制相似问题