我正在尝试使用pollEnrich在循环中下载具有动态文件名的文件,当pollEnrich出现连接异常时,即使在pollenrich声明之后我们也无法docatch,它也不会在onException块中处理。
我还尝试在端点uri中使用throwExceptionOnConnectFailed = true。不是没有用。
onException(Exception.class)
.log( "${exception.stacktrace}")
.end();
from("direct:DownloadFiles")
.loop(exchangeProperty("FileCount"))
.pollEnrich().simple("sftp://testeruser:password@localhost:24?
move=Processed&antInclude=*${property.soNumber}*.*").timeout(30000)
.to("TARGET SFTP endpoint")
.end();
答案 0 :(得分:0)
默认情况下,骆驼忽略连接问题
} catch (Exception e) {
loggedIn = false;
// login failed should we thrown exception
if (getEndpoint().getConfiguration().isThrowExceptionOnConnectFailed()) {
throw e;
}
}
因此,您必须在SFTP使用者上启用选项throwExceptionOnConnectFailed
。在您的情况下,这将是
.pollEnrich()
.simple("sftp://testeruser:password@localhost:24?move=Processed&throwExceptionOnConnectFailed=true&antInclude=*${property.soNumber}*.*")
.timeout(30000)
我知道您在问题中写道,您尝试了该选项但未成功,但是在我的测试中,正是这个选项(根据上面的Camel代码)确定ConnectException
是到达错误处理程序还是到达错误处理程序。忽略。