2013-03-16 57 views
3

我有一个JAX-RS服务包裹在mule v3.2.1流中,可能会触发我想要捕获和处理的异常。我宁愿异常发送到另一个班并与500以下HTTP状态返回OutboundProperty就是我这么远:处理mule流中的特定异常

<flow name="someFlow"> 
    <...do some stuff...> 
    <custom-exception-strategy class="com.myCustomExceptionHandler> 
    </default-exception-strategy> 
</flow> 

myCustomExceptionHandler.handleException()时,我触发异常不会被调用。而且我还不清楚如何重新打包mule消息以返回http响应。

任何人都可以请提供一些想法如何让这个工作?

---- ----更新

异常将是一个org.mule.api.expression.RequiredValueException,这是当抛出评估()被调用由MuleExpressionManager的一个实例的自定义消息内处理器:

public class RequestCheckWithAppMessageProcessor 
implements FlowConstructAware, MuleContextAware, Disposable, Initialisable, Startable, Stoppable, MessageProcessor 

myCustomExceptionHandler类扩展了AbstractMessagingExceptionStrategy。

回答

0

尝试删除default-exception-strategy标签。我对mule 3.2.1不是很熟悉,但是从测试中我发现定制异常策略不应该嵌套在默认策略中。

0

使用catch-exception-strategy并编写一个自定义Transformer来接收DefaultExceptionStrategy作为MuleMessage中基于Excption类型的异常有效载荷,映射错误代码