【发布时间】:2019-05-22 20:38:04
【问题描述】:
这是我的骆驼主班,也是我的骆驼路线
public class MyCamelRoute {
public static void main(String... args) {
CamelContext context = new DefaultCamelContext();
try {
context.addRoutes(new CSVRoute());
context.start();
Thread.sleep(20000);
context.stop();
} catch (Exception e) {
e.printStackTrace();
}
}
}
class CSVRoute extends RouteBuilder {
public void configure() throws Exception {
CsvDataFormat csv = new CsvDataFormat();
from("file:my_csv.csv&noop=true")
.split(body().tokenize("\n")).streaming()
.unmarshal(csv)
.log(LoggingLevel.INFO, body().toString());
}
}
运行它时,我得到了我期望的结果
13:30:42.730 [Camel (camel-1) thread #1 - file://my_csv.csv] INFO route1 - simple{[[534488]]}
13:30:42.732 [Camel (camel-1) thread #1 - file://my_csv.csv] INFO route1 - simple{[[969034]]}
13:30:42.734 [Camel (camel-1) 线程 #1 - file://my_csv.csv] INFO route1 - 简单{[[510711]]}
13:30:42.736 [Camel (camel-1) thread #1 - file://my_csv.csv] INFO route1 - simple{[[778410]]}
13:30:42.737 [Camel (camel-1) 线程 #1 - file://my_csv.csv] INFO route1 - 简单{[[803306]]}
13:30:42.739 [Camel (camel-1) 线程 #1 - file://my_csv.csv] INFO route1 - 简单{[[567892]]}
13:30:42.741 [Camel (camel-1) thread #1 - file://my_csv.csv] INFO route1 - simple{[[269041]]}
13:30:42.743 [Camel (camel-1) thread #1 - file://my_csv.csv] INFO route1 - simple{[[622768]]}
13:30:42.745 [Camel (camel-1) 线程 #1 - file://my_csv.csv] INFO route1 - 简单{[[701100]]}
13:30:42.746 [Camel (camel-1) thread #1 - file://my_csv.csv] INFO route1 - simple{[[169439]]}
13:30:42.747 [Camel (camel-1) thread #1 - file://my_csv.csv] INFO route1 - simple{[[435246]]}
我的问题是,我想访问 simple{[[value]]} 中的值,但我不完全确定如何。
我之前所做的只是将它发送到一个进程并使用exchange.getBody().getIn() 并从那里检查/转换它,但我想尽量避免使用一个进程。
非常感谢任何和所有帮助
【问题讨论】:
标签: java multithreading csv apache-camel