3

我有一个包裹在 mule v3.2.1 流中的 JAX-RS 服务,它可能会触发我想要捕获和处理的异常。我更愿意将异常发送到另一个类并返回一个 HTTP 状态为 500 的 OutboundProperty。这是我到目前为止所得到的:

<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 实例调用 evaluate() 时会抛出该异常:

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

myCustomExceptionHandler 类扩展了 AbstractMessagingExceptionStrategy。

4

2 回答 2

0

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

于 2015-02-24T17:44:39.183 回答
0

使用 catch-exception-strategy 并编写自定义 Transformer 以根据 Excption 类型在 MuleMessage 中接收 DefaultExceptionStrategy 作为异常有效负载,映射错误代码

于 2015-08-27T07:45:28.753 回答