Julio Cejas
Julio Cejas

Reputation: 573

How to capture an exception using the regex-filter filter in Mule ESB

Currently I have a flow that exposes a REST service with a string as input parameter . I am using a regex -filter to ensure the format parameter as follows :

<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>

I need to send the customer a message "Invalid or missing parameter" . For this I use a choice-exception-strategy and catch-exception-strategy and then call a Subflow and perform http:response-builder.

How can I throw an exception(type) when the regex-filter do not match?. It is possible to incorporate this behavior or should I change my flow?

Thanks for your help;

Upvotes: 2

Views: 914

Answers (1)

Ale Sequeira
Ale Sequeira

Reputation: 2039

Wrap it in a message-filter, like this:

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

See the official documentation for further details:

Check the Throw On Unaccepted box to throw an exception if a message or event is not handled. The default when not checked is to not throw an exception.

Upvotes: 2

Related Questions