Csv Camel Bindy-split()不工作

Csv Camel Bindy-split()不工作,csv,apache-camel,bindy,Csv,Apache Camel,Bindy,我正在使用Bindy和Camel来处理CSV文件 下面的代码,获取从csv中解包的bean列表运行正常 from("ftp://blabla.com:21/InPut?password=bla&move=done&sortBy=file:name") .unmarshal(bindy) .process(new Processor() { public void process(Exchange exchange) throws Exception {

我正在使用Bindy和Camel来处理CSV文件

下面的代码,获取从csv中解包的bean列表运行正常

 from("ftp://blabla.com:21/InPut?password=bla&move=done&sortBy=file:name")
.unmarshal(bindy)
.process(new Processor() {
public void process(Exchange exchange) throws Exception {
                    Message in = exchange.getIn();
                    Map<String, Object> modelMap = (Map<String, Object>) in.getBody();
                    System.out.println(modelMap.size());
                    int i = 0;
                }
            });
谢谢你的帮助


Gilles

感谢您的反馈。如果案例1运行良好,让我得到一个地图列表,对于案例2,我必须先逐行处理,然后解组。在本例中,主体包含POJO

此代码适用于:

 .split(body().tokenize("\n"))
 .unmarshal(bindy)
 .process(new Processor() {
                public void process(Exchange exchange) throws Exception {
                    Message in = exchange.getIn();
                    Employee emp = (Employee) in.getBody();
                    System.out.println(emp);

                }
            });
 .split(body().tokenize("\n"))
 .unmarshal(bindy)
 .process(new Processor() {
                public void process(Exchange exchange) throws Exception {
                    Message in = exchange.getIn();
                    Employee emp = (Employee) in.getBody();
                    System.out.println(emp);

                }
            });

感谢您的帮助

您是否认为您使用HashMap的ArrayList并强制转换主体可能导致此遗漏?我甚至没有输入处理方法,因为结果为空。因此,在拆分之前,不要对消息进行如此愚蠢的标记化
.split(body().tokenize(','))
还请注意,
split
在早期版本的camelThank中曾经是
splitter
。我会尝试,但在解开密码后,尸体现在必须包含一个地图列表。这就是我不分手时得到的。因此,此时标记化可能太晚了。您是否试图让处理器处理大小为1的ArrayList,其中包含大小为1的HashMap?
 .split(body().tokenize("\n"))
 .unmarshal(bindy)
 .process(new Processor() {
                public void process(Exchange exchange) throws Exception {
                    Message in = exchange.getIn();
                    Employee emp = (Employee) in.getBody();
                    System.out.println(emp);

                }
            });