这是我使用Apache Camel解组csv文件的示例代码。 问题是它没有从位置文件中获取文件:// src / test / resources /?& fileName = test.csv并且没有在列表中生成结果"结果"。
CamelContext context = new DefaultCamelContext();
context.addRoutes(new RouteBuilder() {
public void configure() {
List result=new ArrayList();
//from("file://src/test/resources/?&fileName=test.csv").unmarshal().csv().to(result);
from("file://src/test/resources/").unmarshal().csv().to("file://src/test/res1/");
}
});
ProducerTemplate template = context.createProducerTemplate();
context.start();
for (int i = 0; i < 10; i++) {
template.sendBody("file://src/test/resources/", "this is Test Message: " + i);
System.out.println("hi");
}
Thread.sleep(1000);
context.stop();
答案 0 :(得分:0)
您的代码from("file://src/test/resources/?&fileName=test.csv").unmarshal().csv().to(result);
不起作用。我猜骆驼语境甚至不会开始,因为to
没有有效的终点。相反,您的路线应该是
from("file://src/test/resources/?&fileName=test.csv").unmarshal().csv().process(new Processor() { public void process(Exchange exchange) throws Exception {
String csvContent = exchange.getIn().getBody(String.class);
// access the result arrayList and store the csvContent.
result.add(csvContent);
}