Do a route that will simply grab the file and store it locally, check the 
difference between what you really get, and what you want to treat.

<route>

<from uri="ftp://user:pass@host/
postalBox/inBox?fileName=simpleTextData.txt&amp;localWorkDirectory=temp&amp;binary=true"/>

<setHeader 
headerName="CamelFilename"><constant>initial.txt</constant></setHeader>
<wireTap uril=file://temp/recieved">


<convertBodyTo type="java.lang.String"/>


<setHeader 
headerName="CamelFilename"><constant>after_text_conversion.txt</constant></setHeader>
<wireTap uril=file://temp/recieved">


<split ....



next, analyze initial.txt and after_text_conversion.txt with hexdump or 
equivalent,

And you will certainly see what to use as separator.


(you can also do the same exercise without binary option, but your code will be 
less portable, from an OS to an other...)




François Liot
Directeur de production et des systèmes d'information
Email : francois.l...@poplidays.com<mailto:francois.l...@poplidays.com>
www.poplidays.com<http://www.poplidays.com/>

[1_logo]<http://www.poplidays.com/>?
________________________________
From: Noam Ramonet <noamramo...@gmail.com>
Sent: Friday, December 5, 2014 3:15 PM
To: François LIOT
Cc: users@camel.apache.org
Subject: 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:

<route id="fromFtp2SOAP">
             <from uri="ftp://user:pass@host/
postalBox/inBox?fileName=simpleTextData.txt&amp;localWorkDirectory=temp&amp;binary=true"/>
             <!-- from 
uri="file:temp/inBox?noop=true&amp;fileName=simpleTextData.txt"/ -->
             <log loggingLevel="INFO" message="ftp: ${body}"/>
             <split streaming="true">
                    <tokenize token=";"/>
                    <log loggingLevel="INFO" message="Line: ${body}"/>
                    <to uri="direct:continue"/>
             </split>
       </route>




2014-12-05 14:24 GMT+01:00 Francois Liot 
<francois.l...@poplidays.com<mailto:francois.l...@poplidays.com>>:
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 <noamramo...@gmail.com<mailto:noamramo...@gmail.com>> 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      512            83 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.
><route id="fromFtp2SOAP">
>             <from uri="ftp://user:pass@host
>/postalBox/inBox?fileName=simpleTextData.txt&amp;localWorkDirectory=temp"/>
>             <!-- from
>uri="file:temp/inBox?noop=true&amp;fileName=simpleTextData.txt"/ -->
>             <log loggingLevel="INFO" message="ftp: ${body}"/>
>             <split streaming="true">
>                    <tokenize token="\n"/>
>                    <log loggingLevel="INFO" message="Line: ${body}"/>
>                    <to uri="direct:continue"/>
>             </split>
>       </route>

Reply via email to