MuleSoft 4 - как я могу перенаправить ошибки из Http: Запрос в мой основной обработчик ошибок? - PullRequest
0 голосов
/ 13 декабря 2018

Я хотел бы направить мой http:request на мой основной (или дополнительный) error handler в Anypoint Studio 7

У меня, похоже, нет clear способ сделать это.И документация не содержит руководящих указаний для этого конкретного случая.

в моем случае необходимо, мне нужно знать и отправлять сигнал другой службе и сообщать ответ об ошибке, например: connection_timeout

1 Ответ

0 голосов
/ 13 декабря 2018

Вы можете перехватить нужные ошибки, используя error-handler в вашем потоке, где вы выполняете http:request.если вы не уловите ошибку, она будет пузыриться до вызывающего потока и так далее.Если обработчик ошибок не настроен, будет использован мул по умолчанию, который в основном регистрирует сообщение.

В Муле 4 вы можете перехватывать все ошибки в вашем потоке следующим образом:

<flow name="retrieveMatchingOrders">
  <http:request config-ref="customersConfig" path="/customer">
  </http:request>
 <error-handler>
    <on-error-continue>
       <!-- error handling logic -->
    </on-error-continue>
 </error-handler>
</flow>

on-error-continue будет выполнять и использовать результат выполнения как результат своего владельца (как если бы владелец фактически завершил выполнение успешно).Любые транзакции на этом этапе также будут зафиксированы

Таким образом, вы можете установить полезную нагрузку на желаемое сообщение, которое будет возвращено и т. Д.

Также есть обработчик on-error-propogate и try scope, более подробная информация о них доступна здесь: https://docs.mulesoft.com/mule-runtime/4.1/intro-error-handlers

Все ошибки, выданные в Mule, содержат метаданные, включая ТИП.Если вам нужно перехватить определенные ошибки HTTP, вы можете настроить свой обработчик ошибок следующим образом:

<error-handler>
  <on-error-continue type="HTTP:TIMEOUT">
    <!-- error handling logic -->
  </on-error-continue>
</error-handler>

Вот список всех определенных HTTP: ошибок, выданных модулем HTTP:

  • HTTP: UNSUPPORTED_MEDIA_TYPE

    HTTP: ПОДКЛЮЧЕНИЕ

    HTTP: INTERNAL_SERVER_ERROR

    HTTP: METHOD_NOT_ALLOWED

    HTTP: NOT_ACCEPTABLE

    HTTP: TOO_MANY_REQUESTS

    HTTP: SERVICE_UNAVAILABLE

    HTTP: CLIENT_SECURITY

    HTTP: FORBIDDEN

    HTTP: UNAUTHORIZED

    HTTP: RETRY_EXHA*

    HTTP: NOT_FOUND

    HTTP: BAD_REQUEST

    HTTP: PARSING

    HTTP: TIMEOUT

    HTTP: SECURITY

Документация каждого модуля должна содержать все конкретные типы ошибок, выдаваемых этим модулем.Вот один пример HTTP: https://docs.mulesoft.com/connectors/http/http-documentation#throws

А вот полный список основных типов ошибок, которые вы можете перехватить, например EXPRESSION, например:

https://docs.mulesoft.com/mule-runtime/4.1/mule-error-concept

...