I have a route in camel.xml like: <route> <from uri="jms:myfoo" /> <doTry> <validate><simple>${body[subsc]} regex '[a-z0-9]{8}' </simple> </validate> <choice> <when> <simple>${body[mykey]} regex '^(T1|T2)$'</simple> <choice> <when> <simple>${body[serviceName]} == 'getList'</simple> <to uri="jms:bar.${body[mykey]}.state" /> </when> </choice> </when> <otherwise> <to uri="jms:invalid" /> <stop /> </otherwise> </choice> <doCatch> <exception>org.apache.camel.ValidationException</exception> <to uri="jms:invalid"/> </doCatch> </doTry> </route>
When I start activemq and send a message, validation passes and it matches ${body[mykey]} to either T1 or T2 but the message is sent to literally to bar.${body[mykey]}.state instead of to bar.T1.state or bar.T2.state i.e. it does not substitute the variable body[mykey]. Any idea what is causing this problem? According to camel docs it should work but it is not working.? I am using camel 2.10.3 and activemq 5.8.0. -- View this message in context: http://camel.465427.n5.nabble.com/Camel-is-not-substituting-variable-expression-in-route-tp5741934.html Sent from the Camel - Users mailing list archive at Nabble.com.