我在WSO2 BPS 3.5.1上有两个BPEL流程。进程A调用进程B.进程B调用可能引发故障的WSO2 ESB中的服务。如果ESB服务引发故障,则进程B捕获它并引发不同的故障。现在,我想抓住进程A中进程B引发的错误,对包含在错误中的消息稍作调整并重新抛出它。
我在进程B中捕获ESB服务抛出的特定错误没有问题。但是,我无法捕获进程A中进程B抛出的错误.BPEL编辑器让我选择错误及其命名空间捕获活动,但故障永远不会被捕获。但是,catchAll能够捕获故障。我发现在ESB服务的WSDL和进程B的WSDL中声明错误的方式没有区别。
因为我需要能够检查进程B返回的错误,所以使用catchAll不足以满足我的需求。我看过a response on stack overflow谈到使用catchAll和一个标志,但我不清楚这个" flag"是什么意思。