camel-csv
を使用して大きなCSVをダウンロードして解析したいと思っています。満足している解決策を見つけられません。 camel-csv
は、ディスクに置かれたファイルを読み込んで処理するように設計されているようです。Apache CamelでCSVをダウンロードして解析する
URLのリストをHTTP経由でダウンロードし、ストリームのダウンロード時に解析します。私はそうのようなcamel-csv
バイパスすることによってそれを行うことができます。
from("mock:in").process(new TaxiDataProcessor(new DataCSVParserFactory())).to("mock:out");
public class DataProcessor implements Processor {
private final DataCSVParserFactory csvParserFactory;
@Inject
public DataProcessor(DataCSVParserFactory csvParserFactory) {
this.csvParserFactory = csvParserFactory;
}
@Override
public void process(Exchange exchange) throws Exception {
String file = (String) exchange.getIn().getBody();
URL url = new URL(file);
CSVParser parser = csvParserFactory.build(url);
for (CSVRecord csvRecord : parser) {
exchange.getIn().setBody(csvRecord);
}
}
}
をしかし、それのCSVアンマーシャルにファイルやパイプをダウンロードするcamel-ahc
のようなものを使用することは可能でしょうか?次のようなもの:
from("direct:input").unmarshall().csv().to("direct:out");
template.send("ahc:uri");
はい、これはクールです。 1つのURLのために。私の場合、私はURLの全リストを処理したいです。あなたのソリューションを使ってどうすればいいですか? – Martinffx