0
我試圖用多次下載同一個文件駱駝ConsumerTemplate。它沒有得到多次下載,但我正在使用駱駝路線完成。 我想使用ConsumerTemplate多次下載文件。
這是我與ConsumerTemplate試圖代碼:多次使用Camel ConsumerTemplate下載文件
import org.apache.camel.CamelContext;
import org.apache.camel.ConsumerTemplate;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
public class DynamicConsumer implements Processor {
@Override
public void process(Exchange inExchange) throws Exception {
CamelContext camelContext = inExchange.getContext();
ConsumerTemplate consumerTemplate = camelContext.createConsumerTemplate();
String resource = "sftp://[email protected]:22/myfiles?password=password&noop=true&idempotent=false&readLockMarkerFile=false&readLock=none&filter=#myFileFilter";
consumerTemplate.start();
Exchange resourceExchange = consumerTemplate.receive(resource,20000);
consumerTemplate.stop();
if(resourceExchange != null) {
inExchange.getOut().setBody(resourceExchange.getIn().getBody());
inExchange.getProperties().putAll(resourceExchange.getProperties());
inExchange.getOut().getHeaders().putAll(resourceExchange.getIn().getHeaders());
} else {
inExchange.getOut().setBody(null);
}
}
}
這活力的消費正從駱駝航線多次調用。所以,每次我都希望下載給定位置的文件。但它沒有發生。
這裏我試着用駱駝路線的代碼。
<from uri="sftp://[email protected]:22/myfiles?password=password&noop=true&idempotent=false&readLockMarkerFile=false&readLock=none&filter=#myFileFilter"/>
你有使用'SFTP交換性質://測試儀@本地:22/myfiles的密碼= password&noop = true&idempotent = false&readLockMarkerFile = false&readLock = none&filter =#myFileFilter「'name/key? – mgyongyosi
@mgyongyosi對不起,我在簡化代碼的時候犯了一個錯誤,實際上是從駱駝交換中取出另一個指定的屬性,現在就更正了 – Usr1123
你確定在所需的文件是在位置?你能張貼你的路線嗎?另外,您的處理器像Content Enricher一樣工作,爲什麼不使用Camel的'pollEnrich(uri)'DSL功能? (http://camel.apache.org/content-enricher.html) – mgyongyosi