WSO2 ESB: как обработать внутреннюю ошибку, возвращенную конечной точкой - PullRequest
0 голосов
/ 14 февраля 2020

Я использую посредник CALL для вызова метода Get в конечной точке. Конечная точка возвращает внутреннюю ошибку 500, как показано ниже. Но вместо того, чтобы управление перешло к последовательности ошибок, процесс передачи продолжается как обычно. Как проложить маршрут до неисправности? Как обработать внутреннюю ошибку в wso2?

[2020-02-14 17:51:21,175] DEBUG {org.apache.synapse.transport.http.headers} - http-incoming-1 << HTTP/1.1 500 Internal Server Error
[2020-02-14 17:51:21,175] DEBUG {org.apache.synapse.transport.http.headers} - http-incoming-1 << HTTP/1.1 500 Internal Server Error
[2020-02-14 17:51:21,176] DEBUG {org.apache.synapse.transport.http.headers} - http-incoming-1 << Strict-Transport-Security: max-age=15638400; includeSubDomains
[2020-02-14 17:51:21,176] DEBUG {org.apache.synapse.transport.http.headers} - http-incoming-1 << Strict-Transport-Security: max-age=15638400; includeSubDomains
[2020-02-14 17:51:21,177] DEBUG {org.apache.synapse.transport.http.headers} - http-incoming-1 << Access-Control-Allow-Methods: POST, GET
[2020-02-14 17:51:21,177] DEBUG {org.apache.synapse.transport.http.headers} - http-incoming-1 << Access-Control-Allow-Methods: POST, GET

1 Ответ

2 голосов
/ 14 февраля 2020

WSO2 ESB не выполняет последовательность ошибок, когда конечная точка возвращает 500, потому что, независимо от кода ответа, процесс передачи должен продолжаться. Мы можем получить код состояния ответа и затем запустить последовательность ошибок. Пример последовательности приведен ниже.

<inSequence>
     <call>
        <endpoint>
           <http uri-template="http://www.mocky.io/v2/5e465018330000520002605f"/>
        </endpoint>
     </call>
     <filter source="$axis2:HTTP_SC" regex="500">
        <then>
           <sequence key="fault"/>
        </then>
        <else/>
     </filter>
     <respond/>
  </inSequence>
...