camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Illtud Daniel <>
Subject Re: <xpath>$headername = 'value</xpath> still works?
Date Sun, 19 Sep 2010 15:59:46 GMT
On 19/09/10 07:40, Claus Ibsen wrote:

> And could you double check that there is no old versions of camel in
> the classpath?
> And the data you send is valid XML

Ah. That's the problem. Since I wasn't using xpath to actually
search any xml, I had a test message with no valid xml content.
If I switch the content for xml, then it works as expected.

Since the Content-Based Router EIP documents using <xpath>
for content-based routing swiching on header values, does
this mean you can only do this if the content is XML? Seems
odd to me to tie one thing (routing on header values) to
another unrelated property (XMLness of message). What if
you want to switch based on headers but are sending JSON or

It does seem odd to me to overload the <xpath> operator
with non-valid xpath to match on a header value anyway,
to be honest.

Somebody else suggested using:

Looking at the documentation for simple, I've tried:

     <from uri="activemq:test_in"/>
     <choice inheritErrorHandler="true" id="choice1">
         <when inheritErrorHandler="true">
             <to uri="activemq:test_out_true" inheritErrorHandler="true" 
         <otherwise inheritErrorHandler="true">
             <to uri="activemq:test_out_other" 
inheritErrorHandler="true" id="to2"/>

But that *always* routes to test_out_true, regardless of the value
of the foo header.

I'm using stomp, BTW, to create the message in the first place, which
may have a bearing on the problem. I can see the message properties
(headers) in the activemq console, but I can't tell what type they

Illtud Daniel                       
Prif Swyddog Technegol                          Chief Technical Officer
Llyfrgell Genedlaethol Cymru                  National Library of Wales

View raw message