这是我的骆驼主班,也是我的骆驼路线
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)线程#1-file://my_csv.csv]信息route1-简单{[[534488]]}
13:30:42.732 [Camel(camel-1)线程#1-file://my_csv.csv]信息route1-简单{[[[969034]]}
13:30:42.734 [Camel(camel-1)线程#1-file://my_csv.csv]信息route1-简单{[[510711]]}
13:30:42.736 [Camel(camel-1)线程#1-file://my_csv.csv]信息route1-简单{[[778410]]}
13:30:42.737 [Camel(camel-1)线程#1-file://my_csv.csv]信息route1-简单{[[803306]]}
13:30:42.739 [Camel(camel-1)线程#1-file://my_csv.csv]信息route1-简单{[[567892]]}
13:30:42.741 [Camel(camel-1)线程#1-file://my_csv.csv]信息route1-简单{[[269041]]}
13:30:42.743 [骆驼(camel-1)线程#1-file://my_csv.csv]信息route1-简单{[[622768]]}
13:30:42.745 [Camel(camel-1)线程#1-file://my_csv.csv]信息route1-简单{[[701100]]}
13:30:42.746 [Camel(camel-1)线程#1-file://my_csv.csv]信息route1-简单{[[169439]]}
13:30:42.747 [Camel(camel-1)线程#1-file://my_csv.csv]信息route1-简单{[[435246]]}
我的问题是,我想访问简单{[[[ value ]]}}中的值,但我不确定如何操作。
我之前所做的只是将其发送到进程并使用exchange.getBody().getIn()
并从那里进行检查/投射,但是我想避免使用进程。
非常感谢所有帮助
答案 0 :(得分:1)
要记录消息正文,您必须使用
.log(LoggingLevel.INFO, "${body}");
由于INFO是默认设置,因此可以更快地完成操作
.log("${body}");
您也可以写文字
.log("The message contains: ${body}");