There is a ? operator, so you can do <simple>${body?.method?.name</simple>
Then it will be null if the body if the body doesnt have a getMethod().getName() There is also a bodyAs(type) to use the Camel type converter. On Wed, Jul 10, 2013 at 4:48 PM, Cristiano Costantini <cristiano.costant...@gmail.com> wrote: > mmm, it seems that "<simple>${body.method.name}</simple>" works: > > <setHeader headerName="methodName"> > <simple>${body.method.name}</simple> > </setHeader> > > > Any comment about this solution? (is it good?) > > What happens if the body is not of class > org.apache.camel.component.bean.BeanInvocation? > Is there a way to check if body is of the right instance? > > Many thanks!!! > > Cristiano > > > > > > 2013/7/10 Cristiano Costantini <cristiano.costant...@gmail.com> > >> Hi All, >> >> I have a Camel Proxy that pushes "BeanInvokation" exchanges to a camel >> route, and I want to route these messages depending on the method name that >> is invoked. >> >> Is there any way to extract this information and put into an header so to >> use it in a <choice>? >> >> >> For example, considering the following XML code: >> >> <camelContext id="camelContext" xmlns=" >> http://camel.apache.org/schema/spring"> >> <proxy id="myServiceProxy" serviceInterface="org.example.MyService" >> serviceUrl="direct:entry" /> >> >> <route> >> <from uri="direct:entry" /> >> <setHeader headerName="methodName"> >> <?? how to extract the method name ??> >> </setHeader> >> >> <choice> >> <when> >> <simple>${header.methodName} == 'myMethod1'</simple> >> <to uri="log:endoint_1?showAll=true" /> >> </when> >> <when> >> <simple>${header.methodName} == 'myMethod2'</simple> >> <to uri="log:endoint_2?showAll=true" /> >> </when> >> <otherwise> >> <throwException ref="unsupportedException" /> >> </otherwise> >> </choice> >> </route> >> </camelContext> >> >> >> I'm searching for a solution to be used between the two <setHeader> tags. >> >> I know I can write a processor, but I will have problems deploying it to >> the classpath where I put the route, so I need a solution that rely on the >> default camel capability (like using simple language or other expression >> languages available with camel). >> >> >> Any idea? >> Thank you all! >> >> Cristiano >> >> >> -- Claus Ibsen ----------------- Red Hat, Inc. Email: cib...@redhat.com Twitter: davsclaus Blog: http://davsclaus.com Author of Camel in Action: http://www.manning.com/ibsen