There seems to be a limitation that makes this impossible; the 'Simple'
evaluation doesnt seem able to access methods that are inherited. I thus
cant access the 'class', as the getClass method is inherited. The route 

<simple>${body.getClass.getName} ==
'org.hbird.exchange.type.Parameter'}</simple>                

Thus fails with the error trace 

Caused by: org.apache.camel.component.bean.MethodNotFoundException: Method
with name: getClass not found on bean:
org.hbird.exchange.type.Parameter@2d83e895. Exchange[Message:
org.hbird.exchange.type.Parameter@2d83e895]
        at
org.apache.camel.component.bean.BeanInfo.createInvocation(BeanInfo.java:164)
        at
org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:150)
        at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:103)
        at
org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:74)
        at
org.apache.camel.language.bean.BeanExpression$InvokeProcessor.process(BeanExpression.java:136)
        at
org.apache.camel.language.bean.BeanExpression$OgnlInvokeProcessor.process(BeanExpression.java:207)

I have tried creating my own accessor method on my class and then the route
works. It only seem because the getClass is an inherited method, or maybe
because it doesnt return a string but that is not what the exception states.

--
View this message in context: 
http://camel.465427.n5.nabble.com/Routing-based-on-exchange-IN-message-body-clas-tp4313282p4313583.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to