Вы можете напрямую вызвать последовательность Fault из любого места посредника. Это похоже на вызов обычной последовательности.
Однако, чтобы иметь c более программный подход, вы можете определить посредник шаблона вызова с параметрами. Вы можете написать стандартный шаблон Fault и вызывать этот шаблон где угодно. При таком подходе вы можете передавать любые пользовательские сообщения об ошибках и коды из любого места посредника. Пример шаблона показан ниже.
<template name="utils_fault_handler" xmlns="http://ws.apache.org/ns/synapse">
<parameter name="errorMessage"/>
<parameter name="errorCategory"/>
<parameter name="errorId"/>
<sequence>
<log category="ERROR" level="custom">
<property expression="$func:errorId" name="ERROR_CODE"/>
<property expression="$func:errorCategory" name="ERROR_CATEGORY"/>
<property expression="$func:errorMessage" name="ERROR_MESSAGE"/>
</log>
<respond/>
</sequence>