骆驼。文件组件。我需要配置路由,以便仅在没有发生错误时才复制文件。是)我有的:
<route id="importFile" autoStartup="{{fdr.import.enabled}}">
<from uri="direct:startImportFile"/>
<from uri="file://{{fdr.folder.working}}?delete=true&readLock=changed"/>
<transacted ref="fdrTxRequired"/>
<doTry>
<to uri="file://{{fdr.folder.done}}"/> <!--1-->
<bean ref="transactionsProcessor"/>
<bean ref="transactionsFinalizer"/>
<!--2-->
<doCatch>
<exception>java.lang.Exception</exception>
<to uri="file://{{fdr.folder.failed}}"/>
<bean ref="exceptionProcessor"/>
</doCatch>
<doFinally>
<bean ref="responsePublisher"/>
</doFinally>
</doTry>
</route>
所需逻辑:如果在 transactionsProcessor 和 transactionsFinalizer 中处理一切正常,那么我们只需将文件从文件夹“工作”移动到文件夹“完成”如果在 transactionProcessor 或 transactionsFinalizer 中发生错误,那么我们将文件从“工作”移动到“失败”和“完成”必须为空如果我将第 1 行放到占位符 2 中,则在我的自定义处理器中处理后,我无法将文件重新定位为 InputStream。也许我们可以从“工作”转向“完成”。然后我们处理文件,如果可以,那么就可以了。如果发生错误,则从“完成”移动到“失败”。请帮忙。