如何最好地处理骡子流中抛出的不同类型的异常

时间:2013-02-11 19:44:46

标签: mule

我在http流程中公开了Mule 3.3.0服务。现在,我想在不同的异常条件下返回不同的响应,比如想要区分错误是因为格式错误的xml与不正确的输入值,还是错误是在服务器端,就像jms一样。我怎样才能最好地处理这个问题。

我尝试创建捕获异常的private flow并为所需的响应应用转换器。当控件返回到调用主流时,返回的私有流异常被视为有效负载消息,并继续进行其余处理。私有流返回的异常不会作为http service的响应返回(因为我的流程正在公开http服务)

如果在私有流程中发生异常,是否有办法停止剩余的流程?

我将xml验证放在私有流中,因为我想根据服务器或客户端错误来区分引发给用户的错误消息

2 个答案:

答案 0 :(得分:1)

由于在私有流中处理异常,您需要使用标准消息路由来根据私有流的结果更改父流的处理路径。

例如,您可以在choice调用后使用flow-ref路由器,并根据某些属性(或您的情况下有意义的任何内容)的存在,继续处理或返回立即回应。

答案 1 :(得分:0)

Catch Exception Strategy是我认为最好的策略,bcz可以引用,也可以在选择异常中调用。