Как обработать исключение в маршрутном проекте в проекте верблюда - PullRequest
0 голосов
/ 10 июля 2019

Я работаю над верблюжьим проектом, используя JbossFuse.Здесь я использую план.Теперь я хочу, чтобы при возникновении любого исключения на любом из маршрутов это обрабатывалось каким-либо процессором, а клиенту возвращался действительный ответ.

1 Ответ

0 голосов
/ 10 июля 2019

Вы можете покрыть любой маршрут в файле проекта с помощью try catch и обработать окончательный ответ клиенту. Логика будет примерно такой:

<route id="route_1">
    <from id="_from_1" uri="direct:processDemo1"/>
    <doTry id="_doTryDemo1">
        <process id="_process_processDemo1" ref="processorBean"/>
        <doCatch id="_doCatchDemo1">
            <exception>java.lang.Exception</exception>
            <to id="_handleExceptionDemo1" uri="direct:HandleException_demo1"/>
        </doCatch>
        <doFinally id="_doFinallyDemo1">
            <log id="_log_Demo1Process_finally" message="Demo1 operation completed"/>
        </doFinally>
    </doTry>
</route>

Здесь processorBean - это класс Bean для обработки маршрута Demo1, а uri="direct:HandleException_demo1" - это другой маршрут, который будет вызван, если в маршруте Demo1 возникнет исключение. Так что маршрут исключения будет для этого маршрута будет

<route id="routeDemo1Exception">
    <from id="_fromdemo1Exception" uri="direct:HandleException_demo1"/>
    <log id="log_demo1Exception" message="Demo1 Exception called"/>
    <process id="_process_exception_Demo1" ref="processDemo1ExceptionBean"/>
</route>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...