java - Apache骆驼从body()中获取价值
问题描述
这是我的骆驼主课,也是我的骆驼路线
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-1) 线程 #1 - file://my_csv.csv] 信息 route1 - 简单{[[534488]]}
13:30:42.732 [Camel (camel-1) 线程 #1 - file://my_csv.csv] INFO route1 - simple{[[969034]]}
13:30:42.734 [骆驼 (camel-1) 线程 #1 - file://my_csv.csv] 信息 route1 - 简单{[[510711]]}
13:30:42.736 [骆驼 (camel-1) 线程 #1 - file://my_csv.csv] 信息 route1 - 简单{[[778410]]}
13:30:42.737 [骆驼 (camel-1) 线程 #1 - file://my_csv.csv] INFO route1 - 简单{[[803306]]}
13:30:42.739 [骆驼 (camel-1) 线程 #1 - file://my_csv.csv] 信息 route1 - 简单{[[567892]]}
13:30:42.741 [骆驼 (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-1) 线程 #1 - file://my_csv.csv] 信息 route1 - 简单{[[701100]]}
13:30:42.746 [Camel (camel-1) 线程 #1 - file://my_csv.csv] INFO route1 - simple{[[169439]]}
13:30:42.747 [骆驼 (camel-1) 线程 #1 - file://my_csv.csv] 信息 route1 - 简单{[[435246]]}
我的问题是,我想访问 simple{[[ value ]]} 内部的值,但我不完全确定如何。
我之前所做的只是将它发送到一个进程并exchange.getBody().getIn()
从那里使用并检查/转换它,但我想尽量避免使用一个进程。
非常感谢任何和所有帮助
解决方案
要记录消息正文,您必须使用
.log(LoggingLevel.INFO, "${body}");
由于 INFO 是默认设置,因此执行起来更快
.log("${body}");
你也可以写一段文字
.log("The message contains: ${body}");
推荐阅读
- ios - 为什么 Game Center 配对控制器卡在“正在连接”?
- css - 在标签内垂直对齐文本的问题
- python - ValueError:无法导入“hostingstart.app”
- javascript - shadow DOM 和 light DOM 中应该包含哪些部分?
- ios - 禁用与 segue 的文本字段交互
- laravel - Laravel - 在页面上显示具有相同值/数字的值
- java - 枚举的通用过滤器
- javascript - JS Chrome 插件 - 查找位于当前活动选项卡中的文本
- google-sheets - 在 Google 表格中过滤和比较数据
- javascript - React Router:使用 setState 更新的状态变量未正确传递给 Route