我有一个用例,我必须将输入多播到多个路由。 我是通过使用apache camel的多播组件来实现的。 如果有任何异常我使用Exception子句处理它。 我还通过将其标记为如下所示标记了不处理错误的路由
<camel:route errorHandlerRef="noErrorHandler">
<camel:from uri="direct://SequenceFlow_5"/>
<camel:transacted ref="sapdatastoretransacted"/>
<camel:setBody id="CallActivity_3_1477551532659">
<camel:simple>${in.body}+2</camel:simple>
</camel:setBody>
<camel:setHeader headerName="Branch B" id="CallActivity_10_1477551532662">
<camel:constant>236</camel:constant>
</camel:setHeader>
<camel:log message="End of multicast branch encountered" loggingLevel="INFO" id="EndEvent_1_1477551532665"/>
</camel:route>
当路线标记为&#34; noErrorHandler&#34;路由中的任何错误都会被抛回给调用者。 在我的用例中,当路由是非事务性时,这非常有效。 但是当路由是事务性的时,在多播的情况下不会向调用者抛出错误。
我想要实现的是处理由多播创建的子路由中的错误,并处理来自调用多播的路由的错误。