我在http
流程中公开了Mule 3.3.0
服务。现在,我想在不同的异常条件下返回不同的响应,比如想要区分错误是因为格式错误的xml与不正确的输入值,还是错误是在服务器端,就像jms一样。我怎样才能最好地处理这个问题。
我尝试创建捕获异常的private flow
并为所需的响应应用转换器。当控件返回到调用主流时,返回的私有流异常被视为有效负载消息,并继续进行其余处理。私有流返回的异常不会作为http service
的响应返回(因为我的流程正在公开http服务)
如果在私有流程中发生异常,是否有办法停止剩余的流程?
我将xml验证放在私有流中,因为我想根据服务器或客户端错误来区分引发给用户的错误消息
答案 0 :(得分:1)
由于在私有流中处理异常,您需要使用标准消息路由来根据私有流的结果更改父流的处理路径。
例如,您可以在choice
调用后使用flow-ref
路由器,并根据某些属性(或您的情况下有意义的任何内容)的存在,继续处理或返回立即回应。
答案 1 :(得分:0)
Catch Exception Strategy是我认为最好的策略,bcz可以引用,也可以在选择异常中调用。