Re: Rép: Splitting Message from Ftp Consumer
Hi, I’ve testing a little more and the issue seems related to the Expresion used by split to iterate. Ftp consumers generates a message with body input of type RemoteFile< FtpFile>. org.apache.commons.net.ftp.FtpFile#toString() method returns the strange splitted content which originated the post “-rw-r--r--1 513 51283 Dec 05 09:55 simpleTextData.txt”. RouteBuilder#body() Expresion generates this String as output. It can be seen using Java DSL. Next route presents the same log as the Spring counterpart: from("ftp://user:pass@host /postalBox/inBox?fileName=simpleTextData.txt&localWorkDirectory=temp") .split(body().tokenize("\n")) .log("Line: ${body}") .end(); Whereas below route works as I need: from("ftp://user:pass@host /postalBox/inBox?fileName=simpleTextData.txt&localWorkDirectory=temp") .split(body(String.class).tokenize("\n")) .log("Line: ${body}") .end(); Is there any way to force the String type conversion in Spring DSL? I already tried , pointed by Francois, without success. Is this an expected behaviour or a bug? Meanwhile, a simple workaround for Spring DSL would be replacing the tokenizer with a custom bean for splitting: public class CustomTokenizer { public List splitFtpFile(String remote){ return Arrays.asList(remote.split("\n")); } }
Re: Rép: Splitting Message from Ftp Consumer
Thanks Francois for your suggestions. I forced binary and changed tokenize pattern to ";" (semicolon), but problem remains: ftp://user:pass@host/ postalBox/inBox?fileName=simpleTextData.txt&localWorkDirectory=temp&binary=true"/> 2014-12-05 14:24 GMT+01:00 Francois Liot : > Your issue is probably due to the fact you use "\n" as separator. > > Use binary ftp option, to guaranty you will receive the very same encoded > ascii stream as it could be hosted remote side, and test other fragrances > of CRLF ("\r\n", "\n"...). > > > Noam Ramonet a écrit : > > >Hi all, > > > >I’m getting an strange behaviour splitting a message body coming from a > ftp > >consumer. Below route works perfectly when I use a local file consumer > >(line commented). I get a log message per file input line, and I can > >process the content later correctly. > > > > > > > >But when I change to the ftp I get the file information data: > > > > > >[fromFtp2SOAP] INFO - Line: -rw-r--r--1 513 51283 Dec > >05 09:55 simpleTextData.txt > > > > > > > >The log line with “ftp:${body}” present correctly the full text content of > >the file. > > > > > > > >I have tried with and without localWorkDirectory option, with same result. > > > > > > > >Any clue? Thanks in advance. > > > > ftp://user:pass@host > > >/postalBox/inBox?fileName=simpleTextData.txt&localWorkDirectory=temp"/> > > > > > > > > > > > > > > > > >
Splitting Message from Ftp Consumer
Hi all, I’m getting an strange behaviour splitting a message body coming from a ftp consumer. Below route works perfectly when I use a local file consumer (line commented). I get a log message per file input line, and I can process the content later correctly. But when I change to the ftp I get the file information data: [fromFtp2SOAP] INFO - Line: -rw-r--r--1 513 51283 Dec 05 09:55 simpleTextData.txt The log line with “ftp:${body}” present correctly the full text content of the file. I have tried with and without localWorkDirectory option, with same result. Any clue? Thanks in advance. ftp://user:pass@host /postalBox/inBox?fileName=simpleTextData.txt&localWorkDirectory=temp"/>