我正在逐行处理一个 csv 文件,现在在处理内容之前,需要验证标题(来自 csv 的第一行)。我正在尝试在标题(Exchange)中设置一个属性,但是当我从文件中读取下一行时,我丢失了之前设置的属性。
from("file:/home/archivos/")
.split().tokenize("\n",1)
.choice()
.when(simple("${property.CamelSplitIndex} > 0"))
.bean(BindingMDS.class, "processContent(${body}, ${file:name})")
.otherwise()
.bean(BindingMDS.class, "processHeader(${body}, ${file:name}");
那是豆子
public class BindingMDS {
...
public void processHeader(String cabeceras, String nombreArchivo, Exchange exchange) {
... // validate columns from header
exchange.getIn().setHeader("IS_CORRECT_HEADER", new Integer(1));
}
public String processContent(String body, String nombreArchivo, Exchange exchange) {
Integer flag = (Integer) exchange.getIn().getHeader("IS_CORRECT_HEADER");
// ... this value is null
}
}
有什么想法吗?,我在调试模式下看到它们是两个不同的实例......
谢谢...