Exception handling WSO2 ESB捕获传输异常(MessageBuilder)

Exception handling WSO2 ESB捕获传输异常(MessageBuilder),exception-handling,wso2,wso2esb,synapse,Exception Handling,Wso2,Wso2esb,Synapse,当我使用WSO2 ESB代理读取消息时,我需要定义一个特定的数据类型,然后应用axis2.xml中定义的特定MessageBuilder 但是当MessageBuilder失败时,即我尝试使用XMLBuilder读取文本文件时,控制台中会出现异常,但不会调用faultSequence。但是我需要做一些错误处理,以防出现任何读取问题 如何从代理中的传输层MessageBuilder捕获异常?您是否在配置中定义了onError属性 <sequence name="main" onError=

当我使用WSO2 ESB代理读取消息时,我需要定义一个特定的数据类型,然后应用axis2.xml中定义的特定MessageBuilder

但是当MessageBuilder失败时,即我尝试使用XMLBuilder读取文本文件时,控制台中会出现异常,但不会调用faultSequence。但是我需要做一些错误处理,以防出现任何读取问题


如何从代理中的传输层MessageBuilder捕获异常?

您是否在配置中定义了onError属性

 <sequence name="main" onError="myFaultSequence">

您可以从中获得更多信息。

据我所知,您的要求是在传输层捕获错误,并在应用程序级别(即:中介级别)处理该错误。也就是说上面的那层

但我认为它违反了消息传递框架的分层体系结构。您应该在消息生成器本身捕获异常并抛出Axis错误,以便底层synapse传输层(在本例中为Axis2)将处理该错误。它将向客户端发送一个故障

如果我们看一下TCP协议栈,这就是常用的做法

如果确实要在中介级别筛选此错误。在消息生成器中捕获该错误,添加消息上下文属性或自定义消息,并将其作为成功消息传递。并在中介级别和句柄中执行筛选

但这又是丑陋的。 :


-Charith

是的,我调用了,但是序列还没有调用,代理读取文件时已经发生异常。。。这是我的问题…很好的解决方法,但是其他人如何处理传输层中的错误呢?我使用的是标准MessageBuilder,并没有真正考虑更改所有消息的源,只是为了将异常传播到我的synapse代理。向客户端发送故障通常是不可能的,例如VFS/FTP问题、TCP/IP HL7问题等。。。在这些情况下,我真的必须向支持团队发送一个警报,可能FTP不再工作了。。。但是我怎么能做到呢?