Java apachecamel SEDA异常处理

Java apachecamel SEDA异常处理,java,apache-camel,Java,Apache Camel,使用apachecamel,我需要对zip文件中包含的XML文件执行XSD验证,任何异常都会导致zip文件被转移到错误文件夹 以下(简化)路线运行良好*: from(“文件:/my/Path&moveFailed=../error”).split(新的zipsplit())。 streaming().filter(头文件(Exchange.FILE_NAME).endsWith(“.xml”))。 bean(MyCustomValidator.class).to(“validator:schem

使用apachecamel,我需要对zip文件中包含的XML文件执行XSD验证,任何异常都会导致zip文件被转移到错误文件夹

以下(简化)路线运行良好*:

from(“文件:/my/Path&moveFailed=../error”).split(新的zipsplit())。
streaming().filter(头文件(Exchange.FILE_NAME).endsWith(“.xml”))。
bean(MyCustomValidator.class).to(“validator:schemas/my/schema.xsd”).end();
为了提高效率,我对其进行了调整,将SEDA用于zip内容检查:

from(“文件:/my/Path&moveFailed=../error”).split(新的zipsplit())。
streaming().filter(头文件(Exchange.FILE_NAME).endsWith(“.xml”))。
至(“seda:validateEvents”);
来自(“seda:validateEvents?concurrentConsumers=20”).bean(MyValidator.class)。
到(“validator:schemas/my/schema.xsd”).end();
但是,现在文件组件不接受
moveFailed
参数。如果我添加一个显式的
onException()
并尝试将文件复制到错误文件夹中,任何XSD验证失败都会将XML文件(而不是zip文件)复制到错误文件夹中

如何在维护端点错误处理的同时执行组件的并行处理


*我对zip文件内容使用了显式文件名过滤器,否则拆分器会对zip中的每个XML文件执行一次我的bean验证程序,对zip文件本身执行一次(?!)。

请参见


除了使用SEDA,您还可以在拆分器中使用并行处理。

谢谢克劳斯,谢谢。我尝试使用并行处理,但是我从ZipInputStream(即使使用流缓存)获得了流关闭IOException。