-1

这是我使用 Apache Camel 解组 csv 文件的示例代码。问题是它没有从位置 file://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();
4

1 回答 1

1

您的代码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); 
}
于 2013-10-18T07:32:05.723 回答