Как я могу поймать ошибку другого процесса в BPEL?

У меня есть два процесса BPEL на WSO2 BPS 3.5.1. Процесс A вызывает процесс B. Процесс B вызывает службу в ESB WSO2, которая может вызвать ошибку. Если служба ESB выдает ошибку, процесс B перехватывает ее и выдает другую ошибку. Теперь я хочу поймать ошибку, выданную процессом B в процессе A, внести небольшую корректировку в сообщение, включенное в ошибку, и повторно выдать ее.

У меня нет проблем с обнаружением конкретной ошибки, вызванной службой ESB в процессе B. Однако я не могу перехватить ошибку, вызванную процессом B в процессе A. Редактор BPEL позволяет мне выбрать ошибку и ее пространство имен для действия catch. , но ошибка никогда не поймана. Тем не менее, catchAll может поймать ошибку. Я не вижу разницы в том, как ошибки объявляются в WSDL службы ESB и WSDL процесса B.

Поскольку мне нужно иметь возможность исследовать ошибку, возвращенную процессом B, использования catchAll недостаточно для моих нужд. Я видел ответ на переполнение стека, в котором говорится об использовании catchAll и флага, но мне непонятно, что имеется в виду под этот «флаг».


person curledUpSheep    schedule 14.02.2017    source источник
comment
Вы уверены, что выбранное вами исключение было выбрано (не инкапсулировано)? (если вы включите больше журналов)   -  person gusto2    schedule 18.02.2017
comment
@GabrielVince Это журнал, когда я использовал CatchAll в процессе A, а затем выполнил Rethrow: pastebin.com/WbtATjCt   -  person curledUpSheep    schedule 20.02.2017