我有一个骆驼(2.21.2)路由,该路由通过FTP获取XML文件,然后将其拆分,然后再进行进一步处理,就像...
from("direct-vm:start")
.split()
.xtokenize("*/row", 'w', ns)
.streaming()
...
如果传递了一个空文件,那么我假定的xtokenize步骤会引起一个com.ctc.wstx.exc.WstxEOFException
的出现,这似乎是完全合理的。
但是,当我尝试放入onException
子句时,似乎并没有捕获到异常。
我有:
onException(com.ctc.wstx.exc.WstxEOFException.class)
.handled(true)
.log(org.apache.camel.LoggingLevel.INFO,
"myLogger",
"File ${header.CamelFileName} is empty or invalid XML");
然而,异常导致路由失败并出现异常,并且永远不会产生我的处理程序日志消息。
但是,如果我将onException
子句更改为java.lang.Exception.class
,它将处理该异常。
我不希望它处理任何异常,仅是由空文件或不完整文件引起的异常。
我在这里做错了什么?如何让onException
仅处理我感兴趣的异常?
感谢您的光临!