Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache camel Apache Camel在多线程中处理时抛出FileNotFoundException_Apache Camel - Fatal编程技术网

Apache camel Apache Camel在多线程中处理时抛出FileNotFoundException

Apache camel Apache Camel在多线程中处理时抛出FileNotFoundException,apache-camel,Apache Camel,我使用以下配置在4个并行线程中处理文件: <route id="input-decision" errorHandlerRef="inputDeadLetterHandler"> <from ref="file:${input.directory}?maxMessagesPerPoll=${input.pollSize}&amp;delay=${input.delay}&amp;move=${input.processedDirectory}/$simple

我使用以下配置在4个并行线程中处理文件:

<route id="input-decision" errorHandlerRef="inputDeadLetterHandler">
  <from ref="file:${input.directory}?maxMessagesPerPoll=${input.pollSize}&amp;delay=${input.delay}&amp;move=${input.processedDirectory}/$simple{date:now:yyyy-MM-dd}/$simple{file:name}&amp;sortBy=file:name&amp;renameUsingCopy=true&amp;antExclude=*.tmp"/>
  <threads maxPoolSize="4" poolSize="4">
    <!-- processing file here -->
  </threads>
</route>

删除
元素会有所帮助,但这会降低交换速度。另外,使用
seda:
端点而不是
threads
也有帮助,但它不能保证在重新启动之间传递,即如果我在处理来自
seda:
的消息时关闭Camel,它在启动时不会恢复,这意味着消息丢失。我也尝试了ActiveMQ,但仅仅同时处理文件似乎有些过头了。此外,我还使用了ActiveMQ。

什么是send_output_20141210134657_73 145.xml?它为什么要查找它?它只是给定给文件端点的目录中的一个文件。文件处理需要很长时间吗?如果没有,seda端点可能没问题,因为在完全关闭的过程中,机上消息有时间完成。顺便说一句,
$simple{…}
是多余的,您可以使用
${…}
通过。不,seda不会令人满意,因为我可能会丢失消息。是的,处理可能需要几分钟。如果没有
$simple
前缀,我将无法获得所需的行为(Camel使用确切的名称创建文件
${date:now:yyyy-MM-dd}
org.apache.camel.TypeConversionException: Error during type conversion from type: java.lang.String to the required type: byte[] with value [Body is file based: GenericFile[send_output_20141210134657_73 145.xml]] due java.io.FileNotFoundException: send_output_20141210134657_73 145.xml
    at org.apache.camel.impl.converter.BaseTypeConverterRegistry.createTypeConversionException(BaseTypeConverterRegistry.java:566) ~[camel-core-2.14.0.jar:2.14.0]
    at org.apache.camel.impl.converter.BaseTypeConverterRegistry.mandatoryConvertTo(BaseTypeConverterRegistry.java:174) ~[camel-core-2.14.0.jar:2.14.0]
    at org.apache.camel.component.file.FileBinding.loadContent(FileBinding.java:57) ~[camel-core-2.14.0.jar:2.14.0]
    at org.apache.camel.component.file.GenericFileConverter.genericFileToInputStream(GenericFileConverter.java:123) ~[camel-core-2.14.0.jar:2.14.0]
    at sun.reflect.GeneratedMethodAccessor117.invoke(Unknown Source) ~[na:na]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_71]
    at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_71]
    at org.apache.camel.util.ObjectHelper.invokeMethod(ObjectHelper.java:1002) ~[camel-core-2.14.0.jar:2.14.0]
    at org.apache.camel.impl.converter.StaticMethodTypeConverter.convertTo(StaticMethodTypeConverter.java:59) ~[camel-core-2.14.0.jar:2.14.0]
    at org.apache.camel.impl.converter.BaseTypeConverterRegistry.doConvertTo(BaseTypeConverterRegistry.java:276) ~[camel-core-2.14.0.jar:2.14.0]
    at org.apache.camel.impl.converter.BaseTypeConverterRegistry.convertTo(BaseTypeConverterRegistry.java:114) ~[camel-core-2.14.0.jar:2.14.0]
    at org.apache.camel.impl.MessageSupport.getBody(MessageSupport.java:72) ~[camel-core-2.14.0.jar:2.14.0]
    at org.apache.camel.impl.MessageSupport.getBody(MessageSupport.java:47) ~[camel-core-2.14.0.jar:2.14.0]
    at org.apache.camel.builder.xml.XPathBuilder.doInEvaluateAs(XPathBuilder.java:876) ~[camel-core-2.14.0.jar:2.14.0]
    at org.apache.camel.builder.xml.XPathBuilder.evaluateAs(XPathBuilder.java:774) ~[camel-core-2.14.0.jar:2.14.0]
    at org.apache.camel.builder.xml.XPathBuilder.matches(XPathBuilder.java:157) ~[camel-core-2.14.0.jar:2.14.0]
    at org.apache.camel.processor.ChoiceProcessor.process(ChoiceProcessor.java:90) ~[camel-core-2.14.0.jar:2.14.0]
    at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72) ~[camel-core-2.14.0.jar:2.14.0]
    at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:398) ~[camel-core-2.14.0.jar:2.14.0]
    at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191) [camel-core-2.14.0.jar:2.14.0]
    at org.apache.camel.processor.Pipeline.process(Pipeline.java:118) [camel-core-2.14.0.jar:2.14.0]
    at org.apache.camel.processor.Pipeline.access$100(Pipeline.java:43) [camel-core-2.14.0.jar:2.14.0]
    at org.apache.camel.processor.Pipeline$1.done(Pipeline.java:136) [camel-core-2.14.0.jar:2.14.0]
    at org.apache.camel.processor.ThreadsProcessor$ProcessCall.run(ThreadsProcessor.java:83) [camel-core-2.14.0.jar:2.14.0]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [na:1.7.0_71]
    at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_71]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_71]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_71]
    at java.lang.Thread.run(Thread.java:745) [na:1.7.0_71]
Caused by: org.apache.camel.RuntimeCamelException: java.io.FileNotFoundException: send_output_20141210134657_73 145.xml
    at org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1364) ~[camel-core-2.14.0.jar:2.14.0]
    at org.apache.camel.util.ObjectHelper.invokeMethod(ObjectHelper.java:1006) ~[camel-core-2.14.0.jar:2.14.0]
    at org.apache.camel.impl.converter.StaticMethodTypeConverter.convertTo(StaticMethodTypeConverter.java:59) ~[camel-core-2.14.0.jar:2.14.0]
    at org.apache.camel.component.file.GenericFileConverter.convertTo(GenericFileConverter.java:97) ~[camel-core-2.14.0.jar:2.14.0]
    at sun.reflect.GeneratedMethodAccessor44.invoke(Unknown Source) ~[na:na]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_71]
    at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_71]
    at org.apache.camel.util.ObjectHelper.invokeMethod(ObjectHelper.java:1002) ~[camel-core-2.14.0.jar:2.14.0]
    at org.apache.camel.impl.converter.StaticMethodFallbackTypeConverter.convertTo(StaticMethodFallbackTypeConverter.java:62) ~[camel-core-2.14.0.jar:2.14.0]
    at org.apache.camel.impl.converter.BaseTypeConverterRegistry.doConvertTo(BaseTypeConverterRegistry.java:316) ~[camel-core-2.14.0.jar:2.14.0]
    at org.apache.camel.impl.converter.BaseTypeConverterRegistry.mandatoryConvertTo(BaseTypeConverterRegistry.java:165) ~[camel-core-2.14.0.jar:2.14.0]
    ... 27 common frames omitted