我有骆驼路线配置如下:
<route id="text-file-route">
<from
uri="file:files/merchant?antInclude={{include-file-type}}&initialDelay=1000&delay=1000&move=${file:name.noext}.processed" />
<split streaming="true">
<tokenize token="\n" />
<process ref="splitBatchAdapterProcessor" />
<process ref="merchantStreamProcessor" />
<process ref="merchantTableProcessor" />
<to uri="mock:dummy" />
</split>
</route>
使用当前配置,即使在处理文件时引发异常,文件也会被重命名。我想要的是,只有在文件时没有引发异常时,才应该重命名文件。
我在使用骆驼2.12。
您需要打开 shareUnitOfWork,以便拆分器返回异常,以便文件使用者可以回滚。您可以在以下位置阅读有关此内容的更多信息: http://camel.apache.org/splitter
<split streaming="true" shareUnitOfWork="true">
如果这是个愚蠢的问题,请原谅。骆驼洞对我来说是新鲜事,所以我真的没有“全球视野”。我喜欢在camel安装中使用队列。我发现ActiveMQ是一个解决方案,然后偶然发现了两个不同的组件(或uri):ActiveMQ和JMS。 由于ActiveMQ正在实现JMS 1.1,使用这两种URI有什么区别?或者换句话说:我可以同时使用这两种方法吗?如果可以,在哪些情况下应该使用哪一种?
所以我使用了DataInputStream、FileInputStream、BufferInputStream、FileReader、BufferedReader、Scanner。它们都抛出FileNOtFoundException或CorruptedStreamException。
文件重命名 文件重命名 源码/* * Copyright (c) 2006-2018, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes * *//* * 程序清单:更改名称 * * 程序会创建一个操作文件的函数并导出到msh命令列表 * 在
任何Avro格式的文件写入尝试都会失败,堆栈跟踪如下。 我们正在使用Spark 2.4.3(使用用户提供的Hadoop)、Scala 2.12,并且我们在运行时使用任一Spark-shell加载Avro包: org.apache.sparkavro_2 或spark提交: 提交org.apache.sparkavro_2 spark会话报告已成功加载Avro包。 ... 在任何一种情况下,当我们尝
我正试图使用FileWriter将一些文本写入文件。程序运行时不抛出任何异常,除了它应该抛出的异常(写入文件是抛出异常的一部分),但文件保留为空。该文件与包含异常的.java文件和抛出异常的.java文件位于同一目录中。 我正在正确地刷新和关闭FileWriter对象,它位于try/catch块中,该块应该打印代码遇到的任何异常,我尝试使用带有FileWriter作为参数的PrintWriter,
问题内容: 我想批量重命名目录中的多个文件,以便从文件名中删除前面的数字和连字符。 如何使用linux命令执行此操作? 问题答案: 这应该使它: 它从块的开头(即数字)开始多次,然后连字符并将其从文件名中删除。 如果不在您的计算机中,则可以使用循环和: 测试 要么: