2013-10-18 170 views
-1

這是我使用Apache Camel解組一個csv文件的示例代碼。 問題是它沒有從位置文件中獲取文件:// src/test/resources /? & fileName = test.csv並且不在「結果」列表中生成結果。UnMarshal使用Apache駱駝的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

您的代碼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); 
}