如何使用Mule ESB中的正则表达式过滤器过滤器捕获异常

时间:2014-04-29 11:49:29

标签: mule mule-studio

目前我有一个使用字符串作为输入参数公开REST服务的流程。我正在使用regex -filter来确保格式参数如下:

<http:inbound-endpoint doc:name="HTTP"
        connector-ref="ciuServiceHTTPConnector" ref="ciuServiceHTTPEndpoint"
        exchange-pattern="request-response" />
    <logger level="INFO" doc:name="Logger" message="epale1 #[payload]"/>
    <regex-filter pattern="^/api/person/(V|E)[0-9]{8}$"
        doc:name="Regex" />
    <logger message="epale2 #[payload]" level="INFO" doc:name="Logger"/>
    <jersey:resources doc:name="REST" >
        <component class="...resource.CiudadanoResource"/>
    </jersey:resources>

我需要向客户发送消息&#34;参数无效或缺失&#34; 。为此,我使用了choice-exception-strategy和catch-exception-strategy,然后调用Subflow并执行http:response-builder。

当正则表达式过滤器不匹配时,如何抛出异常(类型)?可以合并这种行为还是应该改变我的流程?

感谢您的帮助;

1 个答案:

答案 0 :(得分:2)

将其包装在消息过滤器中,如下所示:

    <message-filter throwOnUnaccepted="true">
        <regex-filter pattern="^/api/person/(V|E)[0-9]{8}$"
    doc:name="Regex" />
    </message-filter>

有关详细信息,请参阅official documentation

  

选中Throw On Unaccepted框以在邮件中抛出异常   或事件未得到处理。未选中时的默认值是不抛出   例外。