Как изменить сообщение об ошибке Mule по умолчанию ..? - PullRequest
2 голосов
/ 16 ноября 2011

Я определил конечную точку входа Mule HTTP как:

<flow name="jfeed_fill_data">
    <http:inbound-endpoint address="http://localhost:1212/jcore/insert/feed/">
    </http:inbound-endpoint>
<component class="main.java.com.joshlabs.jcore.Feed"/>
</flow>

Теперь эта служба работает нормально.

Но когда я набираю деформированный URL, что-то вроде "http://localhost:1212/jcore/insert/feedasdasdAwes/",, я получаю следующее сообщение от MULE:

Cannot bind to address "http://localhost:1212/jcore/insert/feedasdasdAwes/"
No component registered on that endpoint

Мой вопрос: Как я могу изменить вышеуказанное сообщение по умолчанию на что-то свое ??

Примечание. На самом деле я хотел вернуть строку JSON в виде сообщения об ошибке. Что-то вроде:

{
  Exception: "Invalid URL"
}

И если возможно, то «Может ли MULE выдать HTTP 404: не найдено Ошибка в вышеприведенном случае» .. ??

1 Ответ

2 голосов
/ 17 ноября 2011

Вам просто нужно, чтобы ваша конечная точка принимала все подпути, а затем обрабатывала неправильные с помощью маршрутизации сообщений:

<flow name="jfeed_fill_data">
    <http:inbound-endpoint address="http://localhost:1212" />
    <choice>
        <when evaluator="header" expression="INBOUND:http.request.path=/jcore/insert/feed/">
            <component class="main.java.com.joshlabs.jcore.Feed"/>
        </when>
        <otherwise>
            <message-properties-transformer>
                <add-message-property key="http.status" value="404"/>
            </message-properties-transformer>
            <expression-transformer>
                <return-argument evaluator="string" expression="{Exception: &quot;Invalid URL&quot;}"/>
            </expression-transformer>
        </otherwise>
    </choice>
</flow>
...