If the CSVRecord is in the same package than the route it doesnt work ( in my previous project) but if I put it in a sub package it works fine
2013/3/5 Jean Francois LE BESCONT <jflebesc...@gmail.com> > Thanks Willem for the help. > > I used 2.10.3 passed in 2.10.4 verify my toString method. I finally > create an other project for this test and it work fine in this new project > ... Probably an import problem ... > > > 2013/3/5 Willem jiang <willem.ji...@gmail.com> > >> Can you double check the AED toString method? >> I tried to write some unit test, but I could not reproduce the error that >> you got. >> >> BTW, which version of Camel are you using? >> Did you try it with latest release Camel 2.10.4 ? >> >> >> -- >> Willem Jiang >> >> Red Hat, Inc. >> FuseSource is now part of Red Hat >> Web: http://www.fusesource.com | http://www.redhat.com >> Blog: http://willemjiang.blogspot.com (http://willemjiang.blogspot.com/) >> (English) >> http://jnn.iteye.com (http://jnn.javaeye.com/) (Chinese) >> Twitter: willemjiang >> Weibo: 姜宁willem >> >> >> >> >> >> On Tuesday, March 5, 2013 at 1:09 AM, Jean Francois LE BESCONT wrote: >> >> > Hey ! >> > >> > I would like to bind a CSV content. But camel looks to do strange >> things. >> > >> > My File : VDE_AED.csv is a simple UNIX file : >> > >> > bob;mazone4;01/12/2012;jack >> > bob;mazone5;01/12/2012?;jack >> > bob;mazone4;01/12/2012;jack >> > >> > ( the second line has to be rejected) >> > >> > I have a CSV Record : >> > >> > @CsvRecord(separator = ";" , crlf = "UNIX" ) >> > public class AED { >> > >> > @DataField(pos = 1, required = true) >> > private String nom = ""; >> > >> > @DataField(pos = 2, required = true) >> > private String zone = ""; >> > >> > @DataField(pos = 3, pattern = "dd/MM/yyyy", required = true) >> > private Date date = null; >> > >> > @DataField(pos = 4, required = true) >> > private String titulaire = ""; >> > [... get set tostring ] >> > >> > And a simpliest route : >> > >> > >> > >> > errorHandler(deadLetterChannel("direct:error")); >> > >> > from("file://C:/Temp/camel?noop=true") >> > .log("Ticket : ${body}") >> > .split() >> > .tokenize("\n") >> > .unmarshal() >> > .bindy(BindyType.Csv, AED.class) >> > .log("Ticket in : ${body}") >> > .marshal() >> > .bindy(BindyType.Csv, AED.class) >> > .log("end ${file:name}").end(); >> > >> > >> > from("direct:error").log("ERROR : '${body}' ").end(); >> > >> > >> > >> > - All my line are rejected when required = true for the first column : >> > >> > @DataField(pos = 1, required = true) >> > private String nom = ""; >> > >> > - When @DataField(pos = 1, required = false) >> > private String nom = ""; >> > >> > >> > >> > Correct line are bindy except the first column which stay null. >> > >> > >> > [read #5 - file://C:/Temp/camel] route1 INFO Ticket : >> bob;mazone4;01/12/2012;jack >> > bob;mazone5;01/12/2012?;jack >> > bob;mazone4;01/12/2012;jack >> > >> > [read #5 - file://C:/Temp/camel] route1 INFO Ticket in : Descripteur >> [nom=, zone=mazone4, date=Sat Dec 01 00:00:00 CET 2012, titulaire=jack] >> > [read #5 - file://C:/Temp/camel] route1 INFO Fin traitement VDE_AED.csv >> > [read #5 - file://C:/Temp/camel] route2 INFO ERROR : >> 'bob;mazone5;01/12/2012?;jack' >> > [read #5 - file://C:/Temp/camel] route1 INFO Ticket in : Descripteur >> [nom=, zone=mazone4, date=Sat Dec 01 00:00:00 CET 2012, titulaire=jack] >> > [read #5 - file://C:/Temp/camel] route1 INFO Fin traitement VDE_AED.csv >> > >> > >> > >> > >> > By the way I am using camel 2.10.3 >> > >> > Strange isn't it ? >> > >> > >> > Attachments: >> > - VDE_AED.csv >> > >> > >> >> >> >> >