问题描述
我通过使用FTP协议处理文件来解决简单路由问题。第一次迭代工作正常,但是接下来的迭代导致异常。
这是电话:
@Autowired
private ProducerTemplate producerTemplate;
......
public void loadData(Collection<URL> theUrls) {
for(URL url: theUrls) {
producerTemplate.sendBody("direct:start",url.toString());
}
}
public void configure() throws Exception {
dataFormat = new BindyCsvDataFormat(StatisticDataCsvDto.class);
from("direct:start")
.routeId("doJob")
.pollEnrich().simple("${body}").timeout(2000)
.unmarshal(dataFormat)
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
// my logic
}
})
// .end()
;
}
最后结束异常:
org.apache.camel.InvalidPayloadException: No body available of type: java.io.InputStream on: Message. Caused by: No type converter available to convert from type: null to the required type: java.io.InputStream with value null. Exchange[]. Caused by: [org.apache.camel.NoTypeConversionAvailableException - No type converter available to convert from type: null to the required type: java.io.InputStream with value null]
at org.apache.camel.support.MessageSupport.getMandatoryBody(MessageSupport.java:118) ~[camel-support-3.4.3.jar:3.4.3]
at org.apache.camel.support.processor.UnmarshalProcessor.process(UnmarshalProcessor.java:58) ~[camel-support-3.4.3.jar:3.4.3]
at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$SimpleTask.run(RedeliveryErrorHandler.java:395) ~[camel-base-3.4.3.jar:3.4.3]
at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:148) ~[camel-base-3.4.3.jar:3.4.3]
at org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:60) ~[camel-base-3.4.3.jar:3.4.3]
at org.apache.camel.processor.Pipeline.process(Pipeline.java:147) ~[camel-base-3.4.3.jar:3.4.3]
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:286) ~[camel-base-3.4.3.jar:3.4.3]
at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:66) ~[camel-direct-3.4.3.jar:3.4.3]
at org.apache.camel.processor.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:212) ~[camel-base-3.4.3.jar:3.4.3]
at org.apache.camel.processor.SharedCamelInternalProcessor$1.process(SharedCamelInternalProcessor.java:110) ~[camel-base-3.4.3.jar:3.4.3]
at org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:83) ~[camel-base-3.4.3.jar:3.4.3]
at org.apache.camel.processor.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:107) ~[camel-base-3.4.3.jar:3.4.3]
at org.apache.camel.impl.engine.DefaultProducerCache.send(DefaultProducerCache.java:185) ~[camel-base-3.4.3.jar:3.4.3]
at org.apache.camel.impl.engine.DefaultProducerTemplate.send(DefaultProducerTemplate.java:176) ~[camel-base-3.4.3.jar:3.4.3]
at org.apache.camel.impl.engine.DefaultProducerTemplate.send(DefaultProducerTemplate.java:172) ~[camel-base-3.4.3.jar:3.4.3]
at org.apache.camel.impl.engine.DefaultProducerTemplate.send(DefaultProducerTemplate.java:153) ~[camel-base-3.4.3.jar:3.4.3]
at org.apache.camel.impl.engine.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:187) ~[camel-base-3.4.3.jar:3.4.3]
at org.apache.camel.impl.engine.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:195) ~[camel-base-3.4.3.jar:3.4.3]
任务只是从ftp服务器上获取文件,读取上下文并在上下文上应用简单的逻辑。
我不明白,为什么在第一次迭代中一切正常,但是接下来就没有了。
预先感谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)