You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Mark Webb <el...@gmail.com> on 2012/04/30 03:19:05 UTC

file info lost in Exchange when passing through SEDA

I have a couple routes set up, shown below:

	<camel:route>
		<camel:from uri="file:data/dropdir?noop=true" />
		<camel:to uri="seda:analyzer" />
	</camel:route>	
		
	<camel:route>
		<camel:from uri="seda:analyzer" />
		<camel:process ref="FileDataProcessor" />
		<camel:choice>
			<camel:when>
				<camel:simple>${in.header.status} == 'fail'</camel:simple>
				<camel:to uri="file:data/failure" />
			</camel:when>
		</camel:choice>
	</camel:route>	

I would like my FileDataProcessor bean to process the data that comes
in to it, but the exchange is null.  I turned tracing on in the
CamelContext and receive the following:

[-1) thread #1 - file://data/dropdir] Tracer                      INFO
 myhost-62196-1335748044869-0-2 >>> (route1)
from(file://data/dropdir?noop=true) --> seda://analyzer <<<
Pattern:InOnly, Headers:{CamelFileName=testdata.dat,
breadcrumbId=myhost-62196-1335748044869-0-1,
CamelFileParent=data/dropdir, CamelFileLastModified=Sun Apr 29
21:07:33 EDT 2012, CamelFileAbsolute=false,
CamelFilePath=data/dropdir/testdata.dat, CamelFileLength=151,
CamelFileNameOnly=testdata.dat,
CamelFileAbsolutePath=/Users/mark/workspace/CamelFileAnalyzer/data/dropdir/testdata.dat,
CamelFileRelativePath=testdata.dat},
BodyType:org.apache.camel.component.file.GenericFile, Body:[Body is
file based: GenericFile[testdata.dat]]
[-1) thread #2 - seda://analyzer] Tracer                         INFO
myhost-62196-1335748044869-0-3 >>> (route2) from(seda://analyzer) -->
<<< Pattern:InOnly, Headers:{CamelFileRelativePath=testdata.dat,
CamelFilePath=data/dropdir/testdata.dat, CamelFileLength=151,
CamelFileNameOnly=testdata.dat, CamelFileParent=data/dropdir,
CamelFileAbsolute=false, CamelFileLastModified=Sun Apr 29 21:07:33 EDT
2012, CamelFileAbsolutePath=/Users/mark/workspace/CamelFileAnalyzer/data/dropdir/testdata.dat,
CamelFileName=testdata.dat,
breadcrumbId=myhost-62196-1335748044869-0-1},
BodyType:org.apache.camel.component.file.GenericFile, Body:[Body is
file based: GenericFile[testdata.dat]]
[-1) thread #2 - seda://analyzer] FileDataProcessor   INFO  Exchange[null]
[-1) thread #2 - seda://analyzer] Tracer                         INFO
myhost-62196-1335748044869-0-3 >>> (route2)  --> choice <<<
Pattern:InOnly, Headers:{status=pass}, BodyType:null, Body:[Body is
null]
[-1) thread #2 - seda://analyzer] Tracer                         INFO
myhost-62196-1335748044869-0-3 >>> (route2) choice --> choice <<<
Pattern:InOnly, Headers:{status=pass}, BodyType:null, Body:[Body is
null]


Can File-based Exchanges not pass through SEDA destinations or
something like that?

Thanks,
Mark

Re: file info lost in Exchange when passing through SEDA

Posted by Mark Webb <el...@gmail.com>.
That was it.  I fell into the trap of using getOut().  Thank you.


On Mon, Apr 30, 2012 at 12:17 AM, Claus Ibsen <cl...@gmail.com> wrote:
> Hi
>
> Sounds like you do something wrong in your custom processor that
> removes the message body.
> See this FAQ
> http://camel.apache.org/using-getin-or-getout-methods-on-exchange.html
>
> On Mon, Apr 30, 2012 at 3:19 AM, Mark Webb <el...@gmail.com> wrote:
>> I have a couple routes set up, shown below:
>>
>>        <camel:route>
>>                <camel:from uri="file:data/dropdir?noop=true" />
>>                <camel:to uri="seda:analyzer" />
>>        </camel:route>
>>
>>        <camel:route>
>>                <camel:from uri="seda:analyzer" />
>>                <camel:process ref="FileDataProcessor" />
>>                <camel:choice>
>>                        <camel:when>
>>                                <camel:simple>${in.header.status} == 'fail'</camel:simple>
>>                                <camel:to uri="file:data/failure" />
>>                        </camel:when>
>>                </camel:choice>
>>        </camel:route>
>>
>> I would like my FileDataProcessor bean to process the data that comes
>> in to it, but the exchange is null.  I turned tracing on in the
>> CamelContext and receive the following:
>>
>> [-1) thread #1 - file://data/dropdir] Tracer                      INFO
>>  myhost-62196-1335748044869-0-2 >>> (route1)
>> from(file://data/dropdir?noop=true) --> seda://analyzer <<<
>> Pattern:InOnly, Headers:{CamelFileName=testdata.dat,
>> breadcrumbId=myhost-62196-1335748044869-0-1,
>> CamelFileParent=data/dropdir, CamelFileLastModified=Sun Apr 29
>> 21:07:33 EDT 2012, CamelFileAbsolute=false,
>> CamelFilePath=data/dropdir/testdata.dat, CamelFileLength=151,
>> CamelFileNameOnly=testdata.dat,
>> CamelFileAbsolutePath=/Users/mark/workspace/CamelFileAnalyzer/data/dropdir/testdata.dat,
>> CamelFileRelativePath=testdata.dat},
>> BodyType:org.apache.camel.component.file.GenericFile, Body:[Body is
>> file based: GenericFile[testdata.dat]]
>> [-1) thread #2 - seda://analyzer] Tracer                         INFO
>> myhost-62196-1335748044869-0-3 >>> (route2) from(seda://analyzer) -->
>> <<< Pattern:InOnly, Headers:{CamelFileRelativePath=testdata.dat,
>> CamelFilePath=data/dropdir/testdata.dat, CamelFileLength=151,
>> CamelFileNameOnly=testdata.dat, CamelFileParent=data/dropdir,
>> CamelFileAbsolute=false, CamelFileLastModified=Sun Apr 29 21:07:33 EDT
>> 2012, CamelFileAbsolutePath=/Users/mark/workspace/CamelFileAnalyzer/data/dropdir/testdata.dat,
>> CamelFileName=testdata.dat,
>> breadcrumbId=myhost-62196-1335748044869-0-1},
>> BodyType:org.apache.camel.component.file.GenericFile, Body:[Body is
>> file based: GenericFile[testdata.dat]]
>> [-1) thread #2 - seda://analyzer] FileDataProcessor   INFO  Exchange[null]
>> [-1) thread #2 - seda://analyzer] Tracer                         INFO
>> myhost-62196-1335748044869-0-3 >>> (route2)  --> choice <<<
>> Pattern:InOnly, Headers:{status=pass}, BodyType:null, Body:[Body is
>> null]
>> [-1) thread #2 - seda://analyzer] Tracer                         INFO
>> myhost-62196-1335748044869-0-3 >>> (route2) choice --> choice <<<
>> Pattern:InOnly, Headers:{status=pass}, BodyType:null, Body:[Body is
>> null]
>>
>>
>> Can File-based Exchanges not pass through SEDA destinations or
>> something like that?
>>
>> Thanks,
>> Mark
>
>
>
> --
> Claus Ibsen
> -----------------
> CamelOne 2012 Conference, May 15-16, 2012: http://camelone.com
> FuseSource
> Email: cibsen@fusesource.com
> Web: http://fusesource.com
> Twitter: davsclaus, fusenews
> Blog: http://davsclaus.blogspot.com/
> Author of Camel in Action: http://www.manning.com/ibsen/

Re: file info lost in Exchange when passing through SEDA

Posted by Claus Ibsen <cl...@gmail.com>.
Hi

Sounds like you do something wrong in your custom processor that
removes the message body.
See this FAQ
http://camel.apache.org/using-getin-or-getout-methods-on-exchange.html

On Mon, Apr 30, 2012 at 3:19 AM, Mark Webb <el...@gmail.com> wrote:
> I have a couple routes set up, shown below:
>
>        <camel:route>
>                <camel:from uri="file:data/dropdir?noop=true" />
>                <camel:to uri="seda:analyzer" />
>        </camel:route>
>
>        <camel:route>
>                <camel:from uri="seda:analyzer" />
>                <camel:process ref="FileDataProcessor" />
>                <camel:choice>
>                        <camel:when>
>                                <camel:simple>${in.header.status} == 'fail'</camel:simple>
>                                <camel:to uri="file:data/failure" />
>                        </camel:when>
>                </camel:choice>
>        </camel:route>
>
> I would like my FileDataProcessor bean to process the data that comes
> in to it, but the exchange is null.  I turned tracing on in the
> CamelContext and receive the following:
>
> [-1) thread #1 - file://data/dropdir] Tracer                      INFO
>  myhost-62196-1335748044869-0-2 >>> (route1)
> from(file://data/dropdir?noop=true) --> seda://analyzer <<<
> Pattern:InOnly, Headers:{CamelFileName=testdata.dat,
> breadcrumbId=myhost-62196-1335748044869-0-1,
> CamelFileParent=data/dropdir, CamelFileLastModified=Sun Apr 29
> 21:07:33 EDT 2012, CamelFileAbsolute=false,
> CamelFilePath=data/dropdir/testdata.dat, CamelFileLength=151,
> CamelFileNameOnly=testdata.dat,
> CamelFileAbsolutePath=/Users/mark/workspace/CamelFileAnalyzer/data/dropdir/testdata.dat,
> CamelFileRelativePath=testdata.dat},
> BodyType:org.apache.camel.component.file.GenericFile, Body:[Body is
> file based: GenericFile[testdata.dat]]
> [-1) thread #2 - seda://analyzer] Tracer                         INFO
> myhost-62196-1335748044869-0-3 >>> (route2) from(seda://analyzer) -->
> <<< Pattern:InOnly, Headers:{CamelFileRelativePath=testdata.dat,
> CamelFilePath=data/dropdir/testdata.dat, CamelFileLength=151,
> CamelFileNameOnly=testdata.dat, CamelFileParent=data/dropdir,
> CamelFileAbsolute=false, CamelFileLastModified=Sun Apr 29 21:07:33 EDT
> 2012, CamelFileAbsolutePath=/Users/mark/workspace/CamelFileAnalyzer/data/dropdir/testdata.dat,
> CamelFileName=testdata.dat,
> breadcrumbId=myhost-62196-1335748044869-0-1},
> BodyType:org.apache.camel.component.file.GenericFile, Body:[Body is
> file based: GenericFile[testdata.dat]]
> [-1) thread #2 - seda://analyzer] FileDataProcessor   INFO  Exchange[null]
> [-1) thread #2 - seda://analyzer] Tracer                         INFO
> myhost-62196-1335748044869-0-3 >>> (route2)  --> choice <<<
> Pattern:InOnly, Headers:{status=pass}, BodyType:null, Body:[Body is
> null]
> [-1) thread #2 - seda://analyzer] Tracer                         INFO
> myhost-62196-1335748044869-0-3 >>> (route2) choice --> choice <<<
> Pattern:InOnly, Headers:{status=pass}, BodyType:null, Body:[Body is
> null]
>
>
> Can File-based Exchanges not pass through SEDA destinations or
> something like that?
>
> Thanks,
> Mark



-- 
Claus Ibsen
-----------------
CamelOne 2012 Conference, May 15-16, 2012: http://camelone.com
FuseSource
Email: cibsen@fusesource.com
Web: http://fusesource.com
Twitter: davsclaus, fusenews
Blog: http://davsclaus.blogspot.com/
Author of Camel in Action: http://www.manning.com/ibsen/