使用Apache camel UnMarshal一个CSV文件

时间:2013-10-18 06:03:38

标签: apache-camel

这是我使用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();

1 个答案:

答案 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); 
}