<int:chain input-channel="chainB">
<int:gateway request-channel="chainC" error-channel="errChannel"/>
</int:chain>
<int:chain input-channel="chainC">
.....
<int:gateway request-channel="chainD"/>
.....
` <int:gateway request-channel="chainE"/>
</int:chain>
<int:chain input-channel="errChannel">
......
<int:gateway request-channel="chainF"/>//this line is conditional
<service-activator ...... />this line has to be executed everytime
......
</int:chain>
1)如果chainD失败,我不必执行chainE。这很好。
2)在chainD中设置了一些标题“Release”。我想仅在chainD能够成功设置该标题时才调用chainF。
添加更多信息 -
现在我有3个schenarios -
错误流逻辑如下 -
我如何编写第3步?
答案 0 :(得分:1)
您可以检查failedMessage
的有效负载上的ErrorMessage
属性。
如果流量在ChainD
之后失败,它将具有标题,如果之前失败,则不会。
<int:filter expression="payload.failedMessage.headers['Release'] != null" />